Skip to content

Commit 1579761

Browse files
committed
Add new test
1 parent c9868d3 commit 1579761

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

libs/shared/src/lib/services/html-parser/html-parser-test-values.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,3 +394,22 @@ export const optionFields = [
394394
__typename: 'FieldMetaData',
395395
},
396396
];
397+
398+
/** Html with table generated through for-loop */
399+
export const forLoopDivElement = {
400+
before: `
401+
{{for item of data.items}}
402+
<div>
403+
<span>{{item.title}}</span>
404+
<span>{{calc.date({{item.date}} ; dd/MM/yyyy)}}</span>
405+
</div>
406+
{{endfor}}
407+
`,
408+
after: `<div><span>First item</span><span>28/09/2024</span></div><div><span>Second item</span><span>05/10/2024</span></div>`,
409+
data: {
410+
items: [
411+
{ title: 'First item', date: '2024-09-28T12:00:00.000Z' },
412+
{ title: 'Second item', date: '2024-10-05T12:00:00.000Z' },
413+
],
414+
},
415+
};

libs/shared/src/lib/services/html-parser/html-parser.service.spec.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
calcFormatElement,
1010
customDateFormats,
1111
dataFormatElement,
12+
forLoopDivElement,
1213
forLoopTableData,
1314
forLoopTableElement,
1415
maxMinValues,
@@ -375,4 +376,14 @@ describe('HtmlParserService', () => {
375376
expect(normalize(result)).toEqual(normalize(forLoopTableElement.after));
376377
});
377378
});
379+
describe('Parse HTML with for-loop generated divs', () => {
380+
it('renders rows from iterable data and applies expressions inside the loop', () => {
381+
const result = service.parseHtml(forLoopDivElement.before, {
382+
data: forLoopDivElement.data,
383+
fields: [],
384+
});
385+
const normalize = (value: string) => value.replace(/\s+/g, '');
386+
expect(normalize(result)).toEqual(normalize(forLoopDivElement.after));
387+
});
388+
});
378389
});

0 commit comments

Comments
 (0)