Skip to content

Commit bcd215d

Browse files
committed
feat: Add 'no id' query
1 parent 800a863 commit bcd215d

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

src/Query/Filter/IdField.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export class IdField extends Field {
99
constructor() {
1010
super();
1111
this.filterInstructions.add('has id', (task: Task) => task.id.length > 0);
12+
this.filterInstructions.add('no id', (task: Task) => task.id.length === 0);
1213
}
1314

1415
public canCreateFilterForLine(line: string): boolean {

tests/Query/Filter/IdField.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,15 @@ describe('id', () => {
1919
testFilter(filter, new TaskBuilder().id(''), false);
2020
testFilter(filter, new TaskBuilder().id('abcdef'), true);
2121
});
22+
23+
it('by id absence', () => {
24+
// Arrange
25+
const line = 'no id';
26+
const filter = new IdField().createFilterOrErrorMessage(line);
27+
expect(idField.canCreateFilterForLine(line)).toEqual(true);
28+
29+
// Act, Assert
30+
testFilter(filter, new TaskBuilder().id(''), true);
31+
testFilter(filter, new TaskBuilder().id('abcdef'), false);
32+
});
2233
});

tests/Query/Query.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ describe('Query parsing', () => {
103103
'no created date',
104104
'no due date',
105105
'no happens date',
106+
'no id',
106107
'no scheduled date',
107108
'no start date',
108109
'no tag',

0 commit comments

Comments
 (0)