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