From 35a9c4785ac41e2fb88a979dfab28f6b90d64686 Mon Sep 17 00:00:00 2001 From: David Bruant Date: Thu, 8 May 2025 16:51:23 +0200 Subject: [PATCH] Test with {/each} and text after partially formatted passing --- tests/fill-odt-template/formatting.js | 30 +++++++++++++++++- ...e-nombres-each-end-and-after-formatted.odt | Bin 0 -> 12536 bytes 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/formatting-liste-nombres-each-end-and-after-formatted.odt diff --git a/tests/fill-odt-template/formatting.js b/tests/fill-odt-template/formatting.js index 29b7a50..cf05508 100644 --- a/tests/fill-odt-template/formatting.js +++ b/tests/fill-odt-template/formatting.js @@ -83,4 +83,32 @@ Les nombres : {#each nombres as n}{n} {/each} !! Les nombres : 3 5 8 13  !! `) -}); \ No newline at end of file +}); + + +// +test('template filling - {/each} and text after partially formatted', async t => { + const templatePath = join(import.meta.dirname, '../fixtures/formatting-liste-nombres-each-end-and-after-formatted.odt') + const templateContent = `Liste de nombres + +Les nombres : {#each nombres as n}{n} {/each} !! +` + + const data = { + nombres : [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 + +Les nombres : 5 8 13 21  !! +`) + +}); diff --git a/tests/fixtures/formatting-liste-nombres-each-end-and-after-formatted.odt b/tests/fixtures/formatting-liste-nombres-each-end-and-after-formatted.odt new file mode 100644 index 0000000000000000000000000000000000000000..43a5e9bb3644eda35529d9a576650b5dde93a4b4 GIT binary patch literal 12536 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 jsJ}*!r