mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-28 20:11:48 -04:00
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { type NumericLiteral, parseNumericLiteral } from '../../src/index.js'
|
|
|
|
test('not a numeric literal', () => {
|
|
expect(parseNumericLiteral('')).toBeUndefined()
|
|
expect(parseNumericLiteral('abcdef')).toBeUndefined()
|
|
expect(parseNumericLiteral('"hello world"')).toBeUndefined()
|
|
expect(parseNumericLiteral('.123')).toBeUndefined()
|
|
expect(parseNumericLiteral('NaN')).toBeUndefined()
|
|
})
|
|
|
|
test('simple numbers', () => {
|
|
expect(parseNumericLiteral('0')).toStrictEqual([{
|
|
type: 'numeric-literal',
|
|
content: 0,
|
|
} as NumericLiteral, ''])
|
|
expect(parseNumericLiteral('3')).toStrictEqual([{
|
|
type: 'numeric-literal',
|
|
content: 3,
|
|
} as NumericLiteral, ''])
|
|
expect(parseNumericLiteral('123')).toStrictEqual([{
|
|
type: 'numeric-literal',
|
|
content: 123,
|
|
} as NumericLiteral, ''])
|
|
expect(parseNumericLiteral('123.4')).toStrictEqual([{
|
|
type: 'numeric-literal',
|
|
content: 123.4,
|
|
} as NumericLiteral, ''])
|
|
expect(parseNumericLiteral('0123')).toStrictEqual([{
|
|
type: 'numeric-literal',
|
|
content: 123,
|
|
} as NumericLiteral, ''])
|
|
expect(parseNumericLiteral('123,456')).toStrictEqual([{
|
|
type: 'numeric-literal',
|
|
content: 123,
|
|
} as NumericLiteral, ',456'])
|
|
})
|
|
|
|
test('unsupported syntax', () => {
|
|
expect(() => parseNumericLiteral('0x12AB')).toThrow(expect.objectContaining({
|
|
code: 'ERR_PNPM_UNSUPPORTED_NUMERIC_LITERAL_SUFFIX',
|
|
suffix: 'x',
|
|
}))
|
|
expect(() => parseNumericLiteral('1e23')).toThrow(expect.objectContaining({
|
|
code: 'ERR_PNPM_UNSUPPORTED_NUMERIC_LITERAL_SUFFIX',
|
|
suffix: 'e',
|
|
}))
|
|
expect(() => parseNumericLiteral('123n')).toThrow(expect.objectContaining({
|
|
code: 'ERR_PNPM_UNSUPPORTED_NUMERIC_LITERAL_SUFFIX',
|
|
suffix: 'n',
|
|
}))
|
|
expect(() => parseNumericLiteral('123ABC')).toThrow(expect.objectContaining({
|
|
code: 'ERR_PNPM_UNSUPPORTED_NUMERIC_LITERAL_SUFFIX',
|
|
suffix: 'A',
|
|
}))
|
|
})
|