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