|
1 |
| -import { dedent } from 'node/markdown/plugins/snippet' |
| 1 | +import { dedent, rawPathToToken } from 'node/markdown/plugins/snippet' |
| 2 | + |
| 3 | +const removeEmptyKeys = <T extends Record<string, unknown>>(obj: T) => { |
| 4 | + return Object.fromEntries( |
| 5 | + Object.entries(obj).filter(([, value]) => value !== '') |
| 6 | + ) as T |
| 7 | +} |
| 8 | + |
| 9 | +/* prettier-ignore */ |
| 10 | +const rawPathTokenMap: [string, Partial<{ filepath: string, extension: string, title: string, region: string, lines: string, lang: string }>][] = [ |
| 11 | + ['/path/to/file.extension', { filepath: '/path/to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 12 | + ['./path/to/file.extension', { filepath: './path/to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 13 | + ['/path to/file.extension', { filepath: '/path to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 14 | + ['./path to/file.extension', { filepath: './path to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 15 | + ['/path.to/file.extension', { filepath: '/path.to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 16 | + ['./path.to/file.extension', { filepath: './path.to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 17 | + ['/path .to/file.extension', { filepath: '/path .to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 18 | + ['./path .to/file.extension', { filepath: './path .to/file.extension', extension: 'extension', title: 'file.extension' }], |
| 19 | + ['/path/to/file', { filepath: '/path/to/file', title: 'file' }], |
| 20 | + ['./path/to/file', { filepath: './path/to/file', title: 'file' }], |
| 21 | + ['/path to/file', { filepath: '/path to/file', title: 'file' }], |
| 22 | + ['./path to/file', { filepath: './path to/file', title: 'file' }], |
| 23 | + ['/path.to/file', { filepath: '/path.to/file', title: 'file' }], |
| 24 | + ['./path.to/file', { filepath: './path.to/file', title: 'file' }], |
| 25 | + ['/path .to/file', { filepath: '/path .to/file', title: 'file' }], |
| 26 | + ['./path .to/file', { filepath: './path .to/file', title: 'file' }], |
| 27 | + ['/path/to/file.extension#region', { filepath: '/path/to/file.extension', extension: 'extension', title: 'file.extension', region: '#region' }], |
| 28 | + ['./path/to/file.extension {c#}', { filepath: './path/to/file.extension', extension: 'extension', title: 'file.extension', lang: 'c#' }], |
| 29 | + ['/path to/file.extension {1,2,4-6}', { filepath: '/path to/file.extension', extension: 'extension', title: 'file.extension', lines: '1,2,4-6' }], |
| 30 | + ['/path to/file.extension {1,2,4-6 c#}', { filepath: '/path to/file.extension', extension: 'extension', title: 'file.extension', lines: '1,2,4-6', lang: 'c#' }], |
| 31 | + ['/path.to/file.extension [title]', { filepath: '/path.to/file.extension', extension: 'extension', title: 'title' }], |
| 32 | + ['./path.to/file.extension#region {c#}', { filepath: './path.to/file.extension', extension: 'extension', title: 'file.extension', region: '#region', lang: 'c#' }], |
| 33 | + ['/path/to/file#region {1,2,4-6}', { filepath: '/path/to/file', title: 'file', region: '#region', lines: '1,2,4-6' }], |
| 34 | + ['./path/to/file#region {1,2,4-6 c#}', { filepath: './path/to/file', title: 'file', region: '#region', lines: '1,2,4-6', lang: 'c#' }], |
| 35 | + ['/path to/file {1,2,4-6 c#} [title]', { filepath: '/path to/file', title: 'title', lines: '1,2,4-6', lang: 'c#' }], |
| 36 | + ['./path to/file#region {1,2,4-6 c#} [title]', { filepath: './path to/file', title: 'title', region: '#region', lines: '1,2,4-6', lang: 'c#' }], |
| 37 | +] |
2 | 38 |
|
3 | 39 | describe('node/markdown/plugins/snippet', () => {
|
4 | 40 | describe('dedent', () => {
|
@@ -57,4 +93,10 @@ describe('node/markdown/plugins/snippet', () => {
|
57 | 93 | `)
|
58 | 94 | })
|
59 | 95 | })
|
| 96 | + |
| 97 | + test('rawPathToToken', () => { |
| 98 | + rawPathTokenMap.forEach(([rawPath, token]) => { |
| 99 | + expect(removeEmptyKeys(rawPathToToken(rawPath))).toEqual(token) |
| 100 | + }) |
| 101 | + }) |
60 | 102 | })
|
0 commit comments