import { cite } from './cite'; import { some } from '../../../combinator'; import { input } from '../../context'; import { inspect } from '../../../debug.test'; describe('Unit: parser/block/reply/cite', () => { describe('cite', () => { const parser = some(cite); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('')), undefined); assert.deepStrictEqual(inspect(parser, input('>')), undefined); assert.deepStrictEqual(inspect(parser, input('>0')), undefined); assert.deepStrictEqual(inspect(parser, input('>\n')), undefined); assert.deepStrictEqual(inspect(parser, input('>>')), undefined); assert.deepStrictEqual(inspect(parser, input('>> ')), undefined); assert.deepStrictEqual(inspect(parser, input('>>0 a')), undefined); assert.deepStrictEqual(inspect(parser, input('>>/')), [['>>/', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>\\')), [['>>\\', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>01#')), [['>>01#', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>01@')), [['>>01@', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>http://')), [['>>http://', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>tel:1234567890')), [['>>tel:1234567890', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>> 0')), undefined); assert.deepStrictEqual(inspect(parser, input(' >>0')), undefined); assert.deepStrictEqual(inspect(parser, input('\\>>0')), undefined); }); it('valid', () => { assert.deepStrictEqual(inspect(parser, input('>>0')), [['>>0', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>0 ')), [['>>0', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>0\n')), [['>>0', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>>0')), [['>>>0', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>0\n1')), [['>>0', '
'], '1']); assert.deepStrictEqual(inspect(parser, input('>>0\n>1')), [['>>0', '
'], '>1']); assert.deepStrictEqual(inspect(parser, input('>>0\n>>')), [['>>0', '
'], '>>']); assert.deepStrictEqual(inspect(parser, input('>>0\n>>1')), [['>>0', '
', '>>1', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>0\n>>>1')), [['>>0', '
', '>>>1', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>>0\n>>')), [['>>>0', '
'], '>>']); assert.deepStrictEqual(inspect(parser, input('>>>0\n>>1')), [['>>>0', '
', '>>1', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>#')), [['>>#', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>># ')), [['>>#', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>#\n')), [['>>#', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>#a')), [['>>#a', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>#index::a')), [['>>#index::a', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>#:~:text=a')), [['>>#:~:text=a', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>http://host')), [['>>http://host', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>http://host)')), [['>>http://host)', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>http://host ')), [['>>http://host', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>http://host\n')), [['>>http://host', '
'], '']); assert.deepStrictEqual(inspect(parser, input('>>https://host')), [['>>https://host', '
'], '']); }); }); });