import { ulist } from './ulist';
import { some } from '../../combinator';
import { input } from '../context';
import { inspect } from '../../debug.test';
describe('Unit: parser/block/ulist', () => {
describe('ulist', () => {
const parser = some(ulist);
it('invalid', () => {
assert.deepStrictEqual(inspect(parser, input('')), undefined);
assert.deepStrictEqual(inspect(parser, input('\n')), 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('-[]')), undefined);
assert.deepStrictEqual(inspect(parser, input('-[ ]')), undefined);
assert.deepStrictEqual(inspect(parser, input('-[x]')), undefined);
assert.deepStrictEqual(inspect(parser, input('-\n')), undefined);
assert.deepStrictEqual(inspect(parser, input('-\n- a')), undefined);
assert.deepStrictEqual(inspect(parser, input(' - ')), undefined);
assert.deepStrictEqual(inspect(parser, input('+')), undefined);
assert.deepStrictEqual(inspect(parser, input('*')), undefined);
});
it('single', () => {
// pending
assert.deepStrictEqual(inspect(parser, input('- ')), [['
'], '']);
// filled
assert.deepStrictEqual(inspect(parser, input('- \\')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- \\\n')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- -')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- -\n')), [[''], '']);
});
it('multiple', () => {
// pending
assert.deepStrictEqual(inspect(parser, input('- \n-')), [[''], '']);
// filled
assert.deepStrictEqual(inspect(parser, input('- 1\n- 2')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n- 2\n- 3')), [[''], '']);
// invalid
assert.deepStrictEqual(inspect(parser, input('- \n+')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- \n0')), [[''], '']);
});
it('nest', () => {
assert.deepStrictEqual(inspect(parser, input('- \n -')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n - 2')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n - 2\n- 3')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n - 2\n - 3')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n - 2\n - 3')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n - 2\n - 3')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- \n -\n +\n -\n +\n+')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n + 2')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n 0')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n 0.')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n 0. ')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- 1\n 0. 2')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- a [#b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- http://host\\')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- !http://host')), [[''], '']);
});
it('checkbox', () => {
assert.deepStrictEqual(inspect(parser, input('- [ ]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- [x]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- [X]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- [X] 1')), [[''], '']);
});
it('indexer', () => {
assert.deepStrictEqual(inspect(parser, input('- [|a]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- a [|]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- a [|b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- - [|b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- [ ] [|a]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- [ ] a [|b]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- a [|]\n - c [|d]')), [[''], '']);
assert.deepStrictEqual(inspect(parser, input('- a [|b]\n - c [|d]')), [[''], '']);
});
});
});