Skip to content

Commit 4dbbf3d

Browse files
committed
refactor: Add any global filter to the status samples
1 parent 5673540 commit 4dbbf3d

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

src/Statuses/StatusSettingsReport.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { StatusSettings } from '../Config/StatusSettings';
22
import { MarkdownTable } from '../lib/MarkdownTable';
33
import { i18n } from '../i18n/i18n';
4+
import { GlobalFilter } from '../Config/GlobalFilter';
45
import { type StatusConfiguration, StatusType } from './StatusConfiguration';
56
import { Status } from './Status';
67
import { StatusRegistry } from './StatusRegistry';
@@ -123,16 +124,19 @@ export function tabulateStatusSettings(statusSettings: StatusSettings) {
123124
* @returns {string[]} An array of markdown strings representing sample tasks.
124125
* Each task includes a symbol, an introductory text, and the name of the status.
125126
* Only the actually registered symbols are used; duplicate and empty symbols are ignored.
127+
* The Global Filter will be added, if it is non-empty.
126128
*/
127129
export function sampleTaskLinesForValidStatuses(statusSettings: StatusSettings) {
128130
const statusRegistry = new StatusRegistry();
129131
StatusSettings.applyToStatusRegistry(statusSettings, statusRegistry);
130132
const registeredStatuses: StatusConfiguration[] = statusRegistry.registeredStatuses;
131133

132134
return registeredStatuses.map((status, index) => {
135+
const globalFilter = GlobalFilter.getInstance();
136+
const globalFilterIfSet = globalFilter.isEmpty() ? '' : globalFilter.get() + ' ';
133137
const intro = `Sample task ${index + 1}`;
134138
const symbol = `status symbol=${getPrintableSymbol(status.symbol)}`;
135139
const name = `status name='${status.name}'`;
136-
return `- [${status.symbol}] ${intro}: ${symbol} ${name}`;
140+
return `- [${status.symbol}] ${globalFilterIfSet}${intro}: ${symbol} ${name}`;
137141
});
138142
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- [ ] #task Sample task 1: status symbol=`space` status name='Todo'
2+
- [x] #task Sample task 2: status symbol=`x` status name='Done'
3+
- [/] #task Sample task 3: status symbol=`/` status name='A slash'
4+
- [p] #task Sample task 4: status symbol=`p` status name='A p'

tests/Statuses/StatusSettingsReport.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@ import type { StatusCollection } from '../../src/Statuses/StatusCollection';
44
import { verifyWithFileExtension } from '../TestingTools/ApprovalTestHelpers';
55
import { coreStatusesData, createStatuses } from '../TestingTools/StatusesTestHelpers';
66
import { initializeI18n } from '../../src/i18n/i18n';
7+
import { GlobalFilter } from '../../src/Config/GlobalFilter';
78

89
beforeAll(async () => {
910
await initializeI18n();
1011
});
1112

13+
afterEach(() => {
14+
GlobalFilter.getInstance().reset();
15+
});
16+
1217
describe('StatusSettingsReport', () => {
1318
it('should tabulate StatusSettings', () => {
1419
const statusSettings = new StatusSettings();
@@ -50,4 +55,12 @@ describe('StatusSettingsReport', () => {
5055
const taskLines = sampleTaskLinesForValidStatuses(statusSettings);
5156
verifyWithFileExtension(taskLines.join('\n'), '.md');
5257
});
58+
59+
it('should create set of sample task lines include global filter', () => {
60+
GlobalFilter.getInstance().set('#task');
61+
const { statusSettings } = createStatuses(coreStatusesData, customStatusesDataForSampleLines);
62+
63+
const taskLines = sampleTaskLinesForValidStatuses(statusSettings);
64+
verifyWithFileExtension(taskLines.join('\n'), '.md');
65+
});
5366
});

0 commit comments

Comments
 (0)