import { autolink } from '../autolink'; import { some } from '../../../combinator'; import { input } from '../../context'; import { inspect } from '../../../debug.test'; describe('Unit: parser/inline/autolink/hashnum', () => { describe('hashnum', () => { 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('#1#')), undefined); assert.deepStrictEqual(inspect(parser, input('#1#2')), undefined); assert.deepStrictEqual(inspect(parser, input('#1#2#3')), undefined); assert.deepStrictEqual(inspect(parser, input('#1@2')), undefined); assert.deepStrictEqual(inspect(parser, input('#\\')), undefined); assert.deepStrictEqual(inspect(parser, input('#\\ ')), undefined); assert.deepStrictEqual(inspect(parser, input('#\\\n')), undefined); assert.deepStrictEqual(inspect(parser, input('##')), undefined); assert.deepStrictEqual(inspect(parser, input('##1')), undefined); assert.deepStrictEqual(inspect(parser, input('###1')), 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('#{1}')), undefined); assert.deepStrictEqual(inspect(parser, input(`#${'1'.repeat(10)}`)), undefined); assert.deepStrictEqual(inspect(parser, input(`#${'1'.repeat(10)}a`)), undefined); assert.deepStrictEqual(inspect(parser, input('# ')), undefined); assert.deepStrictEqual(inspect(parser, input(' #1')), undefined); }); it('valid', () => { assert.deepStrictEqual(inspect(parser, input('#1')), [['#1'], '']); assert.deepStrictEqual(inspect(parser, input('#1 ')), [['#1'], ' ']); assert.deepStrictEqual(inspect(parser, input('#1\n')), [['#1'], '\n']); assert.deepStrictEqual(inspect(parser, input('#1\\')), [['#1'], '\\']); assert.deepStrictEqual(inspect(parser, input('#1\\ ')), [['#1'], '\\ ']); assert.deepStrictEqual(inspect(parser, input('#1\\\n')), [['#1'], '\\\n']); assert.deepStrictEqual(inspect(parser, input(`#1'`)), [[`#1`], `'`]); assert.deepStrictEqual(inspect(parser, input(`#1''`)), [[`#1`], `''`]); assert.deepStrictEqual(inspect(parser, input('#123456789')), [['#123456789'], '']); }); }); });