import { figure } from './figure'; import { some } from '../../../combinator'; import { input } from '../../context'; import { inspect } from '../../../debug.test'; describe('Unit: parser/block/extension/figure', () => { describe('figure', () => { const parser = some(figure); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('~~~figure\n!https://host\n~~~')), [['
~~~figure\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure $group-name]\n!https://host\n~~~')), [['
~~~figure $group-name]\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name\n!https://host\n~~~')), [['
~~~figure [$group-name\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\nhttps://host\n~~~')), [['
~~~figure [$group-name]\nhttps://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\\\n~~~')), [['
~~~figure [$group-name]\n!https://host\n\\\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\na\n~~~')), [['
~~~figure [$group-name]\n!https://host\na\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\n\n\n~~~')), [['
~~~figure [$group-name]\n!https://host\n\n\n\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n !https://host\n~~~')), [['
~~~figure [$group-name]\n !https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n~~~\n~~~')), [['
~~~figure [$group-name]\n!https://host\n~~~\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\ncaption\n~~~\n~~~')), [['
~~~figure [$group-name]\n!https://host\n\ncaption\n~~~\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n~~~~')), [['
~~~figure [$group-name]\n!https://host\n~~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~~figure [$group-name]\n!https://host\n~~~')), [['
~~~~figure [$group-name]\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]a\nhttps://host\n~~~')), [['
~~~figure [$group-name]a\nhttps://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]a\n!https://host\n~~~')), [['
~~~figure [$group-name]a\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name] a\nhttps://host\n~~~')), [['
~~~figure [$group-name] a\nhttps://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name] a\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure a[$group-name]\n!https://host\n~~~')), [['
~~~figure a[$group-name]\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure a [$group-name]\n!https://host\n~~~')), [['
~~~figure a [$group-name]\n!https://host\n~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~ [$group-name]\n!https://host\n~~~')), undefined); assert.deepStrictEqual(inspect(parser, input('~~~ $group-name\n!https://host\n~~~')), undefined); assert.deepStrictEqual(inspect(parser, input(' ~~~figure [$group-name]\n!https://host\n~~~')), undefined); assert.deepStrictEqual(inspect(parser, input('~~~figure [$-name]\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$fig-name]\n> \n\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$figure-name]\n> \n\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$table-name]\n> \n\n~~~')), [['
'], '']); }); it('valid', () => { assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n~~~\n')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\n\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\n\\\n~~~')), [['
\\
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\n\n!https://caption\n~~~')), [['
!https://caption
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n- a\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n1. a\n~~~')), [['
  1. a
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n|\n|-\n|\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n```\n\n```\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n```\n~~~\n```\n\n~~~')), [['
~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n```\n```\n\ncaption\n~~~')), [['
caption
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n$$\n\n$$\n~~~')), [['
$$\n\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n$$\n~~~\n$$\n~~~')), [['
$$\n~~~\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n$$\n\n$$\n\ncaption\n~~~')), [['
caption
$$\n\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n~~~\n~~~\n\ncaption\n~~~')), [['
caption
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n~~~example/markdown\n~~~\n\ncaption\n~~~')), [['
caption
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n~~~table\n~~~\n\ncaption\n~~~')), [['
caption
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n> \n~~~\n\n~~~')), [['

~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n> \n~~~\n\ncaption\n~~~')), [['
caption

~~~
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n!https://host\\\n~~~')), [['
https://host\\
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-name]\n![]{https://host}\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~~figure [$group-name]\n!https://host\n~~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure $group-name\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~[$group-name]\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~$group-name\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-0]\n> \n\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$group-0.0]\n> \n\n~~~')), [['
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$-0]\n$$\n\n$$\n~~~')), [['
$$\n\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$-0.0]\n$$\n\n$$\n~~~')), [['
$$\n\n$$
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$-name]\n!https://host\n~~~')), [['
https://host
'], '']); assert.deepStrictEqual(inspect(parser, input('~~~figure [$-name]\n$$\n\n$$\n\ncaption\n~~~')), [['
caption
$$\n\n$$
'], '']); }); }); });