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