@curvenote/schema
Version:
Schema and markdown parser for @curvenote/editor
51 lines • 1.96 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("./utils");
describe('flattenValues', () => {
it('node with no value/children returns empty string', () => {
expect((0, utils_1.flattenValues)({ type: 'empty' })).toEqual('');
});
it('node with value returns value', () => {
expect((0, utils_1.flattenValues)({ type: 'text', value: 'example' })).toEqual('example');
});
it('node with value and children returns value', () => {
expect((0, utils_1.flattenValues)({
type: 'doubleNode',
value: 'example',
children: [{ type: 'text', value: 'ignored' }],
})).toEqual('example');
});
it('node with child returns child value', () => {
expect((0, utils_1.flattenValues)({
type: 'paragraph',
children: [{ type: 'text', value: 'example' }],
})).toEqual('example');
});
it('node with multiple children returns combined value', () => {
expect((0, utils_1.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((0, utils_1.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