import { strong } from './strong'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/inline/strong', () => { describe('strong', () => { const parser = some(strong); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('**')), undefined); assert.deepStrictEqual(inspect(parser, input('**a')), [['**', 'a'], '']); assert.deepStrictEqual(inspect(parser, input('**a **')), [['**', 'a ', '**'], '']); assert.deepStrictEqual(inspect(parser, input('**a **')), [['**', 'a', ' ', '**'], '']); assert.deepStrictEqual(inspect(parser, input('**a\n**')), [['**', 'a', '
', '**'], '']); assert.deepStrictEqual(inspect(parser, input('**a\\ **')), [['**', 'a', ' ', '**'], '']); assert.deepStrictEqual(inspect(parser, input('**a\\\n**')), [['**', 'a', '
', '**'], '']); assert.deepStrictEqual(inspect(parser, input('**a*')), [['**', 'a'], '*']); assert.deepStrictEqual(inspect(parser, input('**a*b**')), [['**', 'a', 'b'], '*']); 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('**\n**')), undefined); assert.deepStrictEqual(inspect(parser, input('**\na**')), undefined); assert.deepStrictEqual(inspect(parser, input('**\\ a**')), undefined); assert.deepStrictEqual(inspect(parser, input('**\\\na**')), undefined); assert.deepStrictEqual(inspect(parser, input('**a**')), undefined); assert.deepStrictEqual(inspect(parser, input('***a***')), undefined); assert.deepStrictEqual(inspect(parser, input(' **a**')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('**a**')), [['a'], '']); assert.deepStrictEqual(inspect(parser, input('**ab**')), [['ab'], '']); assert.deepStrictEqual(inspect(parser, input('**a\nb**')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('**a\\\nb**')), [['a
b
'], '']); }); it('nest', () => { assert.deepStrictEqual(inspect(parser, input('**a *b***')), [['a b'], '']); assert.deepStrictEqual(inspect(parser, input('**- *b***')), [['- b'], '']); assert.deepStrictEqual(inspect(parser, input('**a **b****')), [['a b'], '']); assert.deepStrictEqual(inspect(parser, input('**a **b****')), [['a\tb'], '']); assert.deepStrictEqual(inspect(parser, input('**a**b****')), [['ab'], '']); assert.deepStrictEqual(inspect(parser, input('**a*b*')), [['**', 'a', 'b'], '']); assert.deepStrictEqual(inspect(parser, input('**a*b*c')), [['**', 'a', 'b', 'c'], '']); assert.deepStrictEqual(inspect(parser, input('**a*b*c**')), [['abc'], '']); assert.deepStrictEqual(inspect(parser, input('**a*b*c**d')), [['abc'], 'd']); assert.deepStrictEqual(inspect(parser, input('**`a`**')), [['a'], '']); assert.deepStrictEqual(inspect(parser, input('**(*a*)**')), [['(a)'], '']); assert.deepStrictEqual(inspect(parser, input('**(**a**)**')), [['(a)'], '']); }); }); });