import { deletion } from './deletion';
import { some } from '../../combinator';
import { input } from '../context';
import { inspect } from '../../debug.test';
describe('Unit: parser/inline/deletion', () => {
describe('deletion', () => {
const parser = some(deletion);
it('invalid', () => {
assert.deepStrictEqual(inspect(parser, input('')), undefined);
assert.deepStrictEqual(inspect(parser, input('~')), undefined);
assert.deepStrictEqual(inspect(parser, input('~~')), [['~~'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a')), [['~~', 'a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a~')), [['~~', 'a~'], '']);
assert.deepStrictEqual(inspect(parser, input(' ~~a~~')), undefined);
});
it('basic', () => {
assert.deepStrictEqual(inspect(parser, input('~~a~~')), [['a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a~b~~')), [['a~b'], '']);
assert.deepStrictEqual(inspect(parser, input('~~ ~~')), [[' '], '']);
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('~~\na~~')), [['
a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~\\\na~~')), [['
a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a~~')), [['a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a ~~')), [['a '], '']);
assert.deepStrictEqual(inspect(parser, input('~~a \n ~~')), [['a '], '']);
assert.deepStrictEqual(inspect(parser, input('~~a\n~~')), [['a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a\n ~~')), [['a '], '']);
assert.deepStrictEqual(inspect(parser, input('~~a\n~~')), [['a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a\nb~~')), [['a
b'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a\\\nb~~')), [['a
b'], '']);
assert.deepStrictEqual(inspect(parser, input('~~\\~~~')), [['~'], '']);
assert.deepStrictEqual(inspect(parser, input('~~a~~~')), [['a'], '~']);
});
it('nest', () => {
assert.deepStrictEqual(inspect(parser, input('~~*~~a~~*~~')), [['a'], '']);
assert.deepStrictEqual(inspect(parser, input('~~*++a++*~~')), [['a'], '']);
});
});
});