import { blockquote } from './blockquote'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/block/blockquote', () => { describe('blockquote', () => { const parser = some(blockquote); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('')), undefined); assert.deepStrictEqual(inspect(parser, input('\n')), undefined); assert.deepStrictEqual(inspect(parser, input('>')), 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('!>\n')), undefined); assert.deepStrictEqual(inspect(parser, input('!>\na')), undefined); assert.deepStrictEqual(inspect(parser, input(' > ')), undefined); assert.deepStrictEqual(inspect(parser, input('>>')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('> ')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('> \\')), [[''], '']); assert.deepStrictEqual(inspect(parser, input('> \\\n')), [['\\
'], '']); assert.deepStrictEqual(inspect(parser, input('> a')), [['\\
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\nb')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n b ')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>>1')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n> b ')), [['a
>>1
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>\n')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>\nb')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>\n b ')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>\n>')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>\n>>1')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>\n> b ')), [['a
>>1
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\\\nb')), [['a
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> a ')), [['a\\
b
'], '']); assert.deepStrictEqual(inspect(parser, input('> \na')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> http://host')), [['
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('> #a')), [['!http://host)
'], '']); assert.deepStrictEqual(inspect(parser, input('> @a#b')), [['#a
'], '']); assert.deepStrictEqual(inspect(parser, input('> >>1\n> > b')), [['@a#b
'], '']); assert.deepStrictEqual(inspect(parser, input('> >>1\n> > b\n> c')), [['>>1
> b
'], '']); }); it('nest', () => { assert.deepStrictEqual(inspect(parser, input('> a\n>>')), [['>>1
> b
c
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>> b\n> c')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>> b\n>> c')), [['abc
'], '']); assert.deepStrictEqual(inspect(parser, input('> a\n>> b\n>>> c')), [['ab
c
'], '']); assert.deepStrictEqual(inspect(parser, input('>> a')), [['abc
'], '']); assert.deepStrictEqual(inspect(parser, input('>> a\n>')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('>> a\n> b')), [['a
'], '']); assert.deepStrictEqual(inspect(parser, input('>> a\n>>> b\n> c')), [['ab
'], '']); assert.deepStrictEqual(inspect(parser, input('>> a\n> b\n>>> c')), [['abc
'], '']); assert.deepStrictEqual(inspect(parser, input('>>> a\n>> b\n> c')), [['abc
'], '']); }); it('markdown', () => { assert.deepStrictEqual(inspect(parser, input('!')), undefined); assert.deepStrictEqual(inspect(parser, input('!>')), undefined); assert.deepStrictEqual(inspect(parser, input('!> ')), [[''], '']); assert.deepStrictEqual(inspect(parser, input('!> \\')), [['abc
'], '']); assert.deepStrictEqual(inspect(parser, input('!> \\\n')), [['\\
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> a')), [['\\
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> a\n')), [['a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> a\\\nb')), [['a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> ++a\nb++')), [['a
bReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> ++a\n> b++')), [['a
bReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> a \n b c ')), [['a
bReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> a')), [['a
b cReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> a\n> b')), [['a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> - a')), [['a
References
b
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> ```\na\n```')), [['
- a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> ```\n> a\n```')), [[' aReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> ```\n> a\n> ```')), [[' aReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> ```\n> a\n> \n> b\n> ```')), [[' aReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> a\n>\n> b')), [[' a
bReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> > a')), [['a
b
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> > a\n> b')), [[' aReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> > a\n> > b')), [[' a
bReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!> > a\n>> b')), [[' a
bReferences
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> > a\n> b')), [[' aReferences
b
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> !> a')), [[' aReferences
b
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!> \na')), [['a
References
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> ## a\n> ## a')), [['a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> ~ a\n> ~ a')), [['a
References
a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> ~~~figure $test-a\n>> > \n>>\n~~~\n> ~~~figure $test-a\n> > \n>\n[#a]\n~~~')), [['
- a
References
- a
References
'], '']); assert.deepStrictEqual(inspect(parser, input('!>> ((a))\n> ((a))')), [['Test 1. References
Test 1. a References
'], '']); }); }); });
- a^1
References
- a^1
References