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', '
'], '']);
});
});
});