From 9191de536943add04c6b028c9b9a72911a0f2260 Mon Sep 17 00:00:00 2001 From: David Bruant Date: Wed, 7 May 2025 16:15:12 +0200 Subject: [PATCH] Adding failing test case --- tests/fill-odt-template/formatting.js | 32 ++++++++++++++++++ .../liste-nombres-avec-formattage.odt | Bin 0 -> 12592 bytes 2 files changed, 32 insertions(+) create mode 100644 tests/fill-odt-template/formatting.js create mode 100644 tests/fixtures/liste-nombres-avec-formattage.odt diff --git a/tests/fill-odt-template/formatting.js b/tests/fill-odt-template/formatting.js new file mode 100644 index 0000000..18d2121 --- /dev/null +++ b/tests/fill-odt-template/formatting.js @@ -0,0 +1,32 @@ +import test from 'ava'; +import {join} from 'node:path'; + +import {getOdtTemplate} from '../../scripts/odf/odtTemplate-forNode.js' + +import {fillOdtTemplate, getOdtTextContent} from '../../exports.js' + +test('template filling {#each ...}{/each} with formating in each marker', async t => { + const templatePath = join(import.meta.dirname, '../fixtures/liste-nombres-avec-formattage.odt') + const templateContent = `Liste de nombres + +Les nombres : {#each nombres as n}{n} {/each} !! +` + + const data = { + nombres : [1,2,3,5] + } + + 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 + +Les nombres : 1 2 3 5  !! +`) + +}); \ No newline at end of file diff --git a/tests/fixtures/liste-nombres-avec-formattage.odt b/tests/fixtures/liste-nombres-avec-formattage.odt new file mode 100644 index 0000000000000000000000000000000000000000..510998687bbde4a0467843bc8d9f4030a1f769a4 GIT binary patch literal 12592 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 Sr*5wwKcL4=r-JP1+y4Lu?Nu%S literal 0 HcmV?d00001