mirror of
https://github.com/pnpm/pnpm.git
synced 2026-02-14 17:12:35 -05:00
52 lines
1.9 KiB
TypeScript
52 lines
1.9 KiB
TypeScript
import { type Token, tokenize } from '../../src/index.js'
|
|
|
|
test('valid tokens', () => {
|
|
expect(Array.from(tokenize(''))).toStrictEqual([] as Token[])
|
|
expect(Array.from(tokenize(
|
|
'packageExtensions.react.dependencies["@types/node"]'
|
|
))).toStrictEqual([
|
|
{ type: 'identifier', content: 'packageExtensions' },
|
|
{ type: 'exact', content: '.' },
|
|
{ type: 'identifier', content: 'react' },
|
|
{ type: 'exact', content: '.' },
|
|
{ type: 'identifier', content: 'dependencies' },
|
|
{ type: 'exact', content: '[' },
|
|
{ type: 'string-literal', quote: '"', content: '@types/node' },
|
|
{ type: 'exact', content: ']' },
|
|
] as Token[])
|
|
expect(Array.from(tokenize(
|
|
'packageExtensions .react\n.dependencies[ "@types/node" ]'
|
|
))).toStrictEqual([
|
|
{ type: 'identifier', content: 'packageExtensions' },
|
|
{ type: 'whitespace' },
|
|
{ type: 'exact', content: '.' },
|
|
{ type: 'identifier', content: 'react' },
|
|
{ type: 'whitespace' },
|
|
{ type: 'exact', content: '.' },
|
|
{ type: 'identifier', content: 'dependencies' },
|
|
{ type: 'exact', content: '[' },
|
|
{ type: 'whitespace' },
|
|
{ type: 'string-literal', quote: '"', content: '@types/node' },
|
|
{ type: 'whitespace' },
|
|
{ type: 'exact', content: ']' },
|
|
] as Token[])
|
|
})
|
|
|
|
test('unexpected tokens', () => {
|
|
expect(Array.from(tokenize('@'))).toStrictEqual([{ type: 'unexpected', content: '@' }] as Token[])
|
|
expect(Array.from(tokenize(
|
|
'packageExtensions.react.@!dependencies["@types/node"]'
|
|
))).toStrictEqual([
|
|
{ type: 'identifier', content: 'packageExtensions' },
|
|
{ type: 'exact', content: '.' },
|
|
{ type: 'identifier', content: 'react' },
|
|
{ type: 'exact', content: '.' },
|
|
{ type: 'unexpected', content: '@' },
|
|
{ type: 'unexpected', content: '!' },
|
|
{ type: 'identifier', content: 'dependencies' },
|
|
{ type: 'exact', content: '[' },
|
|
{ type: 'string-literal', quote: '"', content: '@types/node' },
|
|
{ type: 'exact', content: ']' },
|
|
] as Token[])
|
|
})
|