UNPKG

@natlibfi/melinda-ui-commons

Version:

Common modules for Melinda UI applications

50 lines (37 loc) 1.51 kB
import assert from 'node:assert'; import {describe} from 'node:test'; import generateTests from '@natlibfi/fixugen'; import {READERS} from '@natlibfi/fixura'; //import {MarcRecord} from '@natlibfi/marc-record'; //import createReducer from './postprocessor'; import {marcFieldToDiv} from '../src/scripts/editorUtils.js'; import {JSDOM} from 'jsdom'; const dom = new JSDOM('<!DOCTYPE html><div id="editor"></div>'); const document = dom.window.document; describe('json field -> html div', () => { generateTests({ callback, path: [import.meta.dirname, 'testFixtures', 'field'], recurse: false, useMetadataFile: true, fixura: { failWhenNotFound: false, reader: READERS.TEXT } }); function callback({getFixture, field, decorator = {}}) { const inputField = field; //console.log(JSON.stringify(inputField)); const targetHtml = getFixture('target.html'); //console.log(targetHtml); const elem = document.getElementById('editor'); elem.innerHTML = ''; const outputHtml = marcFieldToDiv(undefined, elem, inputField, decorator, true, document).innerHTML; assert.deepStrictEqual(localPrettyPrint(outputHtml), localPrettyPrint(targetHtml)); function localPrettyPrint(html) { // marcFieldToDiv() return html in a single line, which is hard to read and does not work well with expect. // Convert htmls to multiline format to improve readibility and debugability. return html.replace(/></g, '>\n<'); } } });