From 9cb48a811adf095507e75b6ddacd21589eb7d04b Mon Sep 17 00:00:00 2001 From: David Bruant Date: Sun, 27 Apr 2025 00:52:43 +0200 Subject: [PATCH] Adding {#if} test case --- tests/fill-odt-template.js | 34 ++++++++++++++++++++++++++ tests/fixtures/description-nombre.odt | Bin 0 -> 13096 bytes 2 files changed, 34 insertions(+) create mode 100644 tests/fixtures/description-nombre.odt diff --git a/tests/fill-odt-template.js b/tests/fill-odt-template.js index ec06b9a..a965667 100644 --- a/tests/fill-odt-template.js +++ b/tests/fill-odt-template.js @@ -36,6 +36,40 @@ Bonjoir ☀️ }); +test('basic template filling with {#if}', async t => { + const templatePath = join(import.meta.dirname, './fixtures/description-nombre.odt') + const templateContent = `Description du nombre {n} + +{#if n >5} +n est un grand nombre +{:else} +n est un petit nombre +{/if} +` + + const odtTemplate = await getOdtTemplate(templatePath) + const templateTextContent = await getOdtTextContent(odtTemplate) + t.deepEqual(templateTextContent, templateContent, 'reconnaissance du template') + + + const odtResult3 = await fillOdtTemplate(odtTemplate, {n: 3}) + const odtResult3TextContent = await getOdtTextContent(odtResult3) + t.deepEqual(odtResult3TextContent, `Description du nombre 3 + +n est un petit nombre +`) + + const odtResult8 = await fillOdtTemplate(odtTemplate, {n: 8}) + const odtResult8TextContent = await getOdtTextContent(odtResult8) + t.deepEqual(odtResult8TextContent, `Description du nombre 8 + +n est un grand nombre +`) + + +}); + + test('basic template filling with {#each}', async t => { const templatePath = join(import.meta.dirname, './fixtures/enum-courses.odt') const templateContent = `🧺 La liste de courses incroyable 🧺 diff --git a/tests/fixtures/description-nombre.odt b/tests/fixtures/description-nombre.odt new file mode 100644 index 0000000000000000000000000000000000000000..7ede55edf3c0ba474e6ab2aa32ce9c997d15aec8 GIT binary patch literal 13096 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 literal 0 HcmV?d00001