import { remark } from './remark'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/inline/remark', () => { describe('remark', () => { const parser = some(remark); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('')), undefined); assert.deepStrictEqual(inspect(parser, input('<')), undefined); 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 b%]')), undefined); assert.deepStrictEqual(inspect(parser, input('[% ')), [['[%'], '']); assert.deepStrictEqual(inspect(parser, input('[% \n a')), [['[%', '
', ' a'], '']); assert.deepStrictEqual(inspect(parser, input('[%%]')), undefined); assert.deepStrictEqual(inspect(parser, input('[% [%')), [['[%', ' ', '[', '%'], '']); 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('[% a [%')), [['[%', ' a ', '[', '%'], '']); assert.deepStrictEqual(inspect(parser, input('[% a [% ')), [['[%', ' a ', '[%'], '']); assert.deepStrictEqual(inspect(parser, input('[% a [% b')), [['[%', ' a ', '[%', ' b'], '']); assert.deepStrictEqual(inspect(parser, input('[% a [%% b')), [['[%', ' a ', '[%%', ' b'], '']); assert.deepStrictEqual(inspect(parser, input('[%% a [% b')), [['[%%'], ' a [% b']); assert.deepStrictEqual(inspect(parser, input('[%\\ a %]')), 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('[% [%% %]')), [['[% [%% %]'], '']); assert.deepStrictEqual(inspect(parser, input('[%% [% %%]')), [['[%%'], ' [% %%]']); assert.deepStrictEqual(inspect(parser, input('[%% a %]')), [['[%%'], ' a %]']); assert.deepStrictEqual(inspect(parser, input(' [% a %]')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('[% %]')), [['[% %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% %]')), [['[% %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% %]')), [['[% %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% a %]')), [['[% a %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% - %]')), [['[% - %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% a %]')), [['[% a %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% - %]')), [['[% - %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% a b %]')), [['[% a b %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% a\nb %]')), [['[% a
b %]
'], '']); assert.deepStrictEqual(inspect(parser, input('[% a %] %]')), [['[% a %]'], ' %]']); assert.deepStrictEqual(inspect(parser, input('[% %%] %]')), [['[% %%] %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% [% a %] %]')), [['[% [% a %] %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% a %]b')), [['[% a %]'], 'b']); assert.deepStrictEqual(inspect(parser, input('[%\na\n%]')), [['[%
a
%]
'], '']); assert.deepStrictEqual(inspect(parser, input('[% &a; %]')), [['[% &a; %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% © %]')), [['[% © %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% &copy; %]')), [['[% &copy; %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% [ %]')), [['[% [ %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% \\ a %]')), [['[% a %]'], '']); assert.deepStrictEqual(inspect(parser, input('[% $-a %]$')), [['[% $-a %]'], '$']); assert.deepStrictEqual(inspect(parser, input('[% %]')), [['[% <bdi> %]'], '']); }); }); });