import { label } from './label'; import { some } from '../../../combinator'; import { input } from '../../context'; import { inspect } from '../../../debug.test'; describe('Unit: parser/inline/extension/label', () => { describe('label', () => { const parser = some(label); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('[]')), undefined); assert.deepStrictEqual(inspect(parser, input('$')), undefined); assert.deepStrictEqual(inspect(parser, input('$a')), undefined); assert.deepStrictEqual(inspect(parser, input('$a-')), undefined); assert.deepStrictEqual(inspect(parser, input('$a--')), undefined); assert.deepStrictEqual(inspect(parser, input('$a-.0')), undefined); assert.deepStrictEqual(inspect(parser, input('$a-00')), undefined); assert.deepStrictEqual(inspect(parser, input('$a-01')), undefined); assert.deepStrictEqual(inspect(parser, input('$a-0b')), undefined); assert.deepStrictEqual(inspect(parser, input('$$a-b')), undefined); assert.deepStrictEqual(inspect(parser, input('$$$-b')), undefined); assert.deepStrictEqual(inspect(parser, input(' $a-b')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('$a-b')), [['$a-b'], '']); assert.deepStrictEqual(inspect(parser, input('$a-b.0')), [['$a-b'], '.0']); assert.deepStrictEqual(inspect(parser, input('$a-b.c')), [['$a-b'], '.c']); assert.deepStrictEqual(inspect(parser, input('$a-b-0')), [['$a-b'], '-0']); assert.deepStrictEqual(inspect(parser, input('$a-b-1')), [['$a-b'], '-1']); assert.deepStrictEqual(inspect(parser, input('$a-b-$a-c')), [['$a-b'], '-$a-c']); assert.deepStrictEqual(inspect(parser, input('$a-b-0-$a-c')), [['$a-b'], '-0-$a-c']); assert.deepStrictEqual(inspect(parser, input('$a-0')), [['$a-0'], '']); assert.deepStrictEqual(inspect(parser, input('$a-0.b')), [['$a-0'], '.b']); assert.deepStrictEqual(inspect(parser, input('$a-0.0b')), [['$a-0'], '.0b']); assert.deepStrictEqual(inspect(parser, input('$a-0-$a-0')), [['$a-0'], '-$a-0']); assert.deepStrictEqual(inspect(parser, input('$-b')), [['$-b'], '']); assert.deepStrictEqual(inspect(parser, input('$-b-$-c')), [['$-b'], '-$-c']); assert.deepStrictEqual(inspect(parser, input('$-0')), [['$-0'], '']); assert.deepStrictEqual(inspect(parser, input('$-0.b')), [['$-0'], '.b']); assert.deepStrictEqual(inspect(parser, input('$-0.0b')), [['$-0'], '.0b']); assert.deepStrictEqual(inspect(parser, input('$-0-$-0')), [['$-0'], '-$-0']); assert.deepStrictEqual(inspect(parser, input('$A-B')), [['$A-B'], '']); assert.deepStrictEqual(inspect(parser, input('[$a-b]')), [['$a-b'], '']); }); }); });