From 9275e5777a426d97b4dff91dc9146415ca6cee7c Mon Sep 17 00:00:00 2001 From: David Bruant Date: Mon, 21 Apr 2025 21:32:30 +0200 Subject: [PATCH] failing test --- tests/fill-odt-template.js | 27 +++++++++++++++++++++++++++ tests/fixtures/liste-nombres.odt | Bin 0 -> 12275 bytes 2 files changed, 27 insertions(+) create mode 100644 tests/fixtures/liste-nombres.odt diff --git a/tests/fill-odt-template.js b/tests/fill-odt-template.js index 6140480..11917d0 100644 --- a/tests/fill-odt-template.js +++ b/tests/fill-odt-template.js @@ -279,6 +279,33 @@ Hiver }); +test('template filling {#each ...}{/each} within a single text node', async t => { + const templatePath = join(import.meta.dirname, './fixtures/liste-nombres.odt') + const templateContent = `Liste de nombres + +{#each nombres as n}{n} {/each} +` + + const data = { + nombres : [1,1,2,3,5,8,13,21] + } + + const odtTemplate = await getOdtTemplate(templatePath) + + const templateTextContent = await getOdtTextContent(odtTemplate) + t.deepEqual(templateTextContent, templateContent, 'reconnaissance du template') + + const odtResult = await fillOdtTemplate(odtTemplate, data) + + const odtResultTextContent = await getOdtTextContent(odtResult) + t.deepEqual(odtResultTextContent, `Liste de nombres + +1 1 2 3 5 8 13 21 +`) + +}); + + test('template filling of a table', async t => { const templatePath = join(import.meta.dirname, './fixtures/tableau-simple.odt') diff --git a/tests/fixtures/liste-nombres.odt b/tests/fixtures/liste-nombres.odt new file mode 100644 index 0000000000000000000000000000000000000000..ae7bdfca35bc1943ef534ea38c7e26d2a209dae5 GIT binary patch literal 12275 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 q`)#E^Q2sE~pJ$J!Ir*0$Q2)&gEh_;F_jDWj