UNPKG

@curvenote/schema

Version:

Schema and markdown parser for @curvenote/editor

49 lines 1.81 kB
import { flattenValues } from './utils'; describe('flattenValues', () => { it('node with no value/children returns empty string', () => { expect(flattenValues({ type: 'empty' })).toEqual(''); }); it('node with value returns value', () => { expect(flattenValues({ type: 'text', value: 'example' })).toEqual('example'); }); it('node with value and children returns value', () => { expect(flattenValues({ type: 'doubleNode', value: 'example', children: [{ type: 'text', value: 'ignored' }], })).toEqual('example'); }); it('node with child returns child value', () => { expect(flattenValues({ type: 'paragraph', children: [{ type: 'text', value: 'example' }], })).toEqual('example'); }); it('node with multiple children returns combined value', () => { expect(flattenValues({ type: 'paragraph', children: [ { type: 'text', value: 'one ' }, { type: 'text', value: 'two ' }, { type: 'text', value: 'three' }, ], })).toEqual('one two three'); }); it('node with nested children returns recursively combined value', () => { expect(flattenValues({ type: 'paragraph', children: [ { type: 'text', value: 'zero ' }, { type: 'paragraph', children: [ { type: 'text', value: 'one ' }, { type: 'text', value: 'two ' }, ], }, { type: 'text', value: 'three' }, ], })).toEqual('zero one two three'); }); }); //# sourceMappingURL=utils.spec.js.map