import { autolink } from '../autolink'; import { some } from '../../../combinator'; import { input } from '../../context'; import { inspect } from '../../../debug.test'; describe('Unit: parser/inline/autolink/anchor', () => { describe('anchor', () => { const parser = some(autolink); 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('>>-0')), undefined); assert.deepStrictEqual(inspect(parser, input('>>01#')), undefined); assert.deepStrictEqual(inspect(parser, input('>>01@')), undefined); assert.deepStrictEqual(inspect(parser, input('>>0-1:2')), undefined); assert.deepStrictEqual(inspect(parser, input('>>https://host')), undefined); assert.deepStrictEqual(inspect(parser, input('>>tel:1234567890')), undefined); assert.deepStrictEqual(inspect(parser, input('>>>')), undefined); assert.deepStrictEqual(inspect(parser, input('a>>0')), undefined); assert.deepStrictEqual(inspect(parser, input(' >>0')), undefined); }); it('valid', () => { assert.deepStrictEqual(inspect(parser, input('>>0')), [['>>0'], '']); assert.deepStrictEqual(inspect(parser, input('>>a')), [['>>a'], '']); assert.deepStrictEqual(inspect(parser, input('>>A')), [['>>A'], '']); assert.deepStrictEqual(inspect(parser, input('>>0-')), [['>>0'], '-']); assert.deepStrictEqual(inspect(parser, input('>>0-a')), [['>>0-a'], '']); assert.deepStrictEqual(inspect(parser, input('>>0-A')), [['>>0-A'], '']); assert.deepStrictEqual(inspect(parser, input('>>0--a')), [['>>0'], '--a']); assert.deepStrictEqual(inspect(parser, input('>>2000-0131-2359-59999')), [['>>2000-0131-2359-59999'], '']); }); }); });