import { UnitTest } from '@ephox/bedrock-client'; import { SugarElement } from '@ephox/sugar'; import * as ApproxStructure from 'ephox/agar/api/ApproxStructure'; import * as Assertions from 'ephox/agar/api/Assertions'; UnitTest.test('Approx Structures Tutorial Test', () => { const html = '
' + '
' + 'span' + '
' + 'words' + '
'; const check = (expected, input): void => { const target = SugarElement.fromHtml(input); Assertions.assertStructure('Test', expected, target); }; const structure = ApproxStructure.build((s, str, arr) => s.element('div', { classes: [ arr.has('test1'), arr.hasPrefix('tes') ], attrs: { selected: str.is('double'), car: str.none('Car should not be there') }, styles: { display: str.is('block') }, children: [ s.element('div', { attrs: { selected: str.is('true') }, children: [ s.element('span', { attrs: { 'data-ephox-id': str.startsWith('bl') }, classes: [ arr.has('disabled'), arr.not('enabled') ], html: str.is('span') }) ] }), s.text(str.is('words')) ] })); check(structure, html); });