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