import { indexer } from './indexer';
import { some } from '../../../combinator';
import { input } from '../../context';
import { inspect } from '../../../debug.test';
describe('Unit: parser/inline/extension/indexer', () => {
describe('indexer', () => {
const parser = some(indexer);
it('invalid', () => {
assert.deepStrictEqual(inspect(parser, input('')), undefined);
assert.deepStrictEqual(inspect(parser, input('[|a]')), undefined);
assert.deepStrictEqual(inspect(parser, input(' ')), undefined);
assert.deepStrictEqual(inspect(parser, input(' |')), undefined);
assert.deepStrictEqual(inspect(parser, input(' |a')), undefined);
assert.deepStrictEqual(inspect(parser, input(' [| ]')), undefined);
assert.deepStrictEqual(inspect(parser, input(' [|]]')), undefined);
assert.deepStrictEqual(inspect(parser, input(' [|a]]')), undefined);
});
it('valid', () => {
assert.deepStrictEqual(inspect(parser, input(' [|]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a] ')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a ]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a ]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a\tb]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|a_b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|A]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|\\A]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|*A*]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|\\`A\\`]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input(' [|\\$\\{A\\}\\$]')), [[''], '']);
});
});
});