13 - Feature request: Sort by modification date, treating folder and files equally
- added unit tests coverage for the extended sorting methods in sorting specification processor
This commit is contained in:
parent
1b8e0878af
commit
bfd093bbf2
|
@ -865,6 +865,102 @@ describe('SortingSpecProcessor path wildcard priorities', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const txtInputAdvancedFolderDateSortingMethods: string = `
|
||||||
|
target-folder: A
|
||||||
|
< advanced modified
|
||||||
|
target-folder: B
|
||||||
|
> advanced modified
|
||||||
|
target-folder: C
|
||||||
|
< advanced created
|
||||||
|
target-folder: D
|
||||||
|
> advanced created
|
||||||
|
target-folder: AA
|
||||||
|
/folders
|
||||||
|
< advanced modified
|
||||||
|
/:files
|
||||||
|
> advanced modified
|
||||||
|
/folders Archive...
|
||||||
|
< advanced created
|
||||||
|
/:files Archive...
|
||||||
|
> advanced created
|
||||||
|
`
|
||||||
|
|
||||||
|
const expectedSortSpecForAdvancedFolderDateSortingMethods: { [key: string]: CustomSortSpec } = {
|
||||||
|
'A': {
|
||||||
|
defaultOrder: CustomSortOrder.byModifiedTimeAdvanced,
|
||||||
|
groups: [{
|
||||||
|
order: CustomSortOrder.byModifiedTimeAdvanced,
|
||||||
|
type: CustomSortGroupType.Outsiders
|
||||||
|
}],
|
||||||
|
outsidersGroupIdx: 0,
|
||||||
|
targetFoldersPaths: ['A']
|
||||||
|
},
|
||||||
|
'B': {
|
||||||
|
defaultOrder: CustomSortOrder.byModifiedTimeReverseAdvanced,
|
||||||
|
groups: [{
|
||||||
|
order: CustomSortOrder.byModifiedTimeReverseAdvanced,
|
||||||
|
type: CustomSortGroupType.Outsiders
|
||||||
|
}],
|
||||||
|
outsidersGroupIdx: 0,
|
||||||
|
targetFoldersPaths: ['B']
|
||||||
|
},
|
||||||
|
'C': {
|
||||||
|
defaultOrder: CustomSortOrder.byCreatedTimeAdvanced,
|
||||||
|
groups: [{
|
||||||
|
order: CustomSortOrder.byCreatedTimeAdvanced,
|
||||||
|
type: CustomSortGroupType.Outsiders
|
||||||
|
}],
|
||||||
|
outsidersGroupIdx: 0,
|
||||||
|
targetFoldersPaths: ['C']
|
||||||
|
},
|
||||||
|
'D': {
|
||||||
|
defaultOrder: CustomSortOrder.byCreatedTimeReverseAdvanced,
|
||||||
|
groups: [{
|
||||||
|
order: CustomSortOrder.byCreatedTimeReverseAdvanced,
|
||||||
|
type: CustomSortGroupType.Outsiders
|
||||||
|
}],
|
||||||
|
outsidersGroupIdx: 0,
|
||||||
|
targetFoldersPaths: ['D']
|
||||||
|
},
|
||||||
|
'AA': {
|
||||||
|
groups: [{
|
||||||
|
foldersOnly: true,
|
||||||
|
order: CustomSortOrder.byModifiedTimeAdvanced,
|
||||||
|
type: CustomSortGroupType.Outsiders
|
||||||
|
}, {
|
||||||
|
filesOnly: true,
|
||||||
|
order: CustomSortOrder.byModifiedTimeReverseAdvanced,
|
||||||
|
type: CustomSortGroupType.Outsiders
|
||||||
|
}, {
|
||||||
|
exactPrefix: 'Archive',
|
||||||
|
foldersOnly: true,
|
||||||
|
order: CustomSortOrder.byCreatedTimeAdvanced,
|
||||||
|
type: 3
|
||||||
|
}, {
|
||||||
|
exactPrefix: 'Archive',
|
||||||
|
filesOnly: true,
|
||||||
|
order: CustomSortOrder.byCreatedTimeReverseAdvanced,
|
||||||
|
type: 3
|
||||||
|
}],
|
||||||
|
outsidersFilesGroupIdx: 1,
|
||||||
|
outsidersFoldersGroupIdx: 0,
|
||||||
|
targetFoldersPaths: ['AA']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('SortingSpecProcessor advanced folder-date based sorting methods', () => {
|
||||||
|
let processor: SortingSpecProcessor;
|
||||||
|
beforeEach(() => {
|
||||||
|
processor = new SortingSpecProcessor();
|
||||||
|
});
|
||||||
|
it('should not raise error for multiple spec for the same path and choose correct spec, case A', () => {
|
||||||
|
const inputTxtArr: Array<string> = txtInputAdvancedFolderDateSortingMethods.split('\n')
|
||||||
|
const result = processor.parseSortSpecFromText(inputTxtArr, 'mock-folder', 'custom-name-note.md')
|
||||||
|
expect(result?.sortSpecByPath).toEqual(expectedSortSpecForAdvancedFolderDateSortingMethods)
|
||||||
|
expect(result?.sortSpecByWildcard).toBeUndefined()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
const errorsLogger = jest.fn();
|
const errorsLogger = jest.fn();
|
||||||
|
|
||||||
const ERR_PREFIX = 'Sorting specification problem:'
|
const ERR_PREFIX = 'Sorting specification problem:'
|
||||||
|
|
Loading…
Reference in New Issue