import { autolink } from '../autolink'; import { some } from '../../../combinator'; import { input } from '../../context'; import { inspect } from '../../../debug.test'; describe('Unit: parser/inline/autolink/channel', () => { describe('channel', () => { const parser = some(autolink); it('invalid', () => { 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('@a#')), undefined); assert.deepStrictEqual(inspect(parser, input('@a#1')), undefined); assert.deepStrictEqual(inspect(parser, input('@a#b@')), undefined); assert.deepStrictEqual(inspect(parser, input('@a#1@b')), undefined); assert.deepStrictEqual(inspect(parser, input(' @a#b')), undefined); }); it('valid', () => { 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#1')), [['@a#b'], '#1']); assert.deepStrictEqual(inspect(parser, input('@a#b#c')), [['@a#b#c'], '']); assert.deepStrictEqual(inspect(parser, input('@domain/a#b')), [['@domain/a#b'], '']); }); }); });