import { reply } from './reply'; import { some } from '../../combinator'; import { input } from '../context'; import { inspect } from '../../debug.test'; describe('Unit: parser/block/reply', () => { describe('reply', () => { const parser = some(reply); it('invalid', () => { assert.deepStrictEqual(inspect(parser, input('>')), undefined); assert.deepStrictEqual(inspect(parser, input('>1')), undefined); assert.deepStrictEqual(inspect(parser, input('>>')), undefined); assert.deepStrictEqual(inspect(parser, input('>>1 a')), undefined); assert.deepStrictEqual(inspect(parser, input('> ')), undefined); assert.deepStrictEqual(inspect(parser, input('> a')), undefined); assert.deepStrictEqual(inspect(parser, input('>\n')), undefined); }); it('basic', () => { assert.deepStrictEqual(inspect(parser, input('>>1')), [['

>>1

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\na')), [['

>>1
a

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\na\n>>2')), [['

>>1
a
>>2

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\na\n>>2 b')), [['

>>1
a
>>2 b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\na\n> b')), [['

>>1
a
> b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\n>>2')), [['

>>1
>>2

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\n> a')), [['

>>1
> a

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\n> a\nb')), [['

>>1
> a
b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\n> a\n>>2')), [['

>>1
> a
>>2

'], '']); assert.deepStrictEqual(inspect(parser, input('>>1\n> a\n>> b')), [['

>>1
> a
>> b

'], '']); assert.deepStrictEqual(inspect(parser, input('>>http://host\n>>http://host')), [['

>>http://host
>>http://host

'], '']); }); }); });