From e158450d18836a6304567972e102335f3101065b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Fri, 6 Mar 2026 15:40:05 +0100 Subject: [PATCH] Add test for multiple interpolations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- tests/cases/1-parsed@multiple.snap | 69 ++++++++++++++++++++++++ tests/cases/2-ast@multiple.snap | 57 ++++++++++++++++++++ tests/cases/3-instructions@multiple.snap | 38 +++++++++++++ tests/cases/4-output@multiple.snap | 6 +++ tests/cases/multiple.temple | 6 +++ 5 files changed, 176 insertions(+) create mode 100644 tests/cases/1-parsed@multiple.snap create mode 100644 tests/cases/2-ast@multiple.snap create mode 100644 tests/cases/3-instructions@multiple.snap create mode 100644 tests/cases/4-output@multiple.snap create mode 100644 tests/cases/multiple.temple diff --git a/tests/cases/1-parsed@multiple.snap b/tests/cases/1-parsed@multiple.snap new file mode 100644 index 0000000..665cf57 --- /dev/null +++ b/tests/cases/1-parsed@multiple.snap @@ -0,0 +1,69 @@ +--- +source: tests/file_tests.rs +expression: parsed +input_file: tests/cases/multiple.temple +--- +ParsedTemplate { + tokens: [ + TemplateToken { + kind: Content, + source: "Hi there! My name is", + }, + TemplateToken { + kind: Whitespace, + source: " ", + }, + TemplateToken { + kind: LeftDelim, + source: "{{", + }, + TemplateToken { + kind: WantsOutput, + source: "=", + }, + TemplateToken { + kind: Whitespace, + source: " ", + }, + TemplateToken { + kind: Ident, + source: "name", + }, + TemplateToken { + kind: Whitespace, + source: " ", + }, + TemplateToken { + kind: RightDelim, + source: "}}", + }, + TemplateToken { + kind: Whitespace, + source: " ", + }, + TemplateToken { + kind: LeftDelim, + source: "{{", + }, + TemplateToken { + kind: WantsOutput, + source: "=", + }, + TemplateToken { + kind: Whitespace, + source: " ", + }, + TemplateToken { + kind: Ident, + source: "lastname", + }, + TemplateToken { + kind: Whitespace, + source: " ", + }, + TemplateToken { + kind: RightDelim, + source: "}}", + }, + ], +} diff --git a/tests/cases/2-ast@multiple.snap b/tests/cases/2-ast@multiple.snap new file mode 100644 index 0000000..5627af6 --- /dev/null +++ b/tests/cases/2-ast@multiple.snap @@ -0,0 +1,57 @@ +--- +source: tests/file_tests.rs +expression: ast +input_file: tests/cases/multiple.temple +--- +TemplateAst { + root: [ + StaticContent( + TemplateToken { + kind: Content, + source: "Hi there! My name is", + }, + ), + Interpolation { + prev_whitespace: Some( + TemplateToken { + kind: Whitespace, + source: " ", + }, + ), + wants_output: Some( + TemplateToken { + kind: WantsOutput, + source: "=", + }, + ), + expression: VariableAccess( + TemplateToken { + kind: Ident, + source: "name", + }, + ), + post_whitespace: Some( + TemplateToken { + kind: Whitespace, + source: " ", + }, + ), + }, + Interpolation { + prev_whitespace: None, + wants_output: Some( + TemplateToken { + kind: WantsOutput, + source: "=", + }, + ), + expression: VariableAccess( + TemplateToken { + kind: Ident, + source: "lastname", + }, + ), + post_whitespace: None, + }, + ], +} diff --git a/tests/cases/3-instructions@multiple.snap b/tests/cases/3-instructions@multiple.snap new file mode 100644 index 0000000..3e4513a --- /dev/null +++ b/tests/cases/3-instructions@multiple.snap @@ -0,0 +1,38 @@ +--- +source: tests/file_tests.rs +expression: emit +input_file: tests/cases/multiple.temple +--- +[ + AppendContent { + content: "Hi there! My name is", + }, + AppendContent { + content: " ", + }, + LoadFromContextToSlot { + name: "name", + slot: VariableSlot { + index: 0, + }, + }, + EmitFromSlot { + slot: VariableSlot { + index: 0, + }, + }, + AppendContent { + content: " ", + }, + LoadFromContextToSlot { + name: "lastname", + slot: VariableSlot { + index: 1, + }, + }, + EmitFromSlot { + slot: VariableSlot { + index: 1, + }, + }, +] diff --git a/tests/cases/4-output@multiple.snap b/tests/cases/4-output@multiple.snap new file mode 100644 index 0000000..0808a5a --- /dev/null +++ b/tests/cases/4-output@multiple.snap @@ -0,0 +1,6 @@ +--- +source: tests/file_tests.rs +expression: output +input_file: tests/cases/multiple.temple +--- +"Hi there! My name is Hemera Green" diff --git a/tests/cases/multiple.temple b/tests/cases/multiple.temple new file mode 100644 index 0000000..6a012b5 --- /dev/null +++ b/tests/cases/multiple.temple @@ -0,0 +1,6 @@ +{ + "name": "Hemera", + "lastname": "Green" +} +--- +Hi there! My name is {{= name }} {{= lastname }} \ No newline at end of file