From 9edd8c9266334062cddac6f0ea28f654bfc2f86c Mon Sep 17 00:00:00 2001 From: Andreas Hager Date: Sat, 30 Sep 2023 06:41:00 +0200 Subject: [PATCH] #278 add more module test cases --- .../gg/jte/TemplateEngine_ModulesTest.java | 40 ++++++++++++++++++- .../modules/empty-top-level-module/.jteroot | 3 ++ .../apexcharts/.jteroot | 0 .../apexcharts/line-chart.jte | 0 .../empty-top-level-module/checkout/.jteroot | 2 + .../empty-top-level-module/checkout/page.jte | 1 + .../core/.jteroot | 0 .../core/component/css.jte | 2 + .../empty-top-level-module/core/layout.jte | 6 +++ .../apexcharts/.jteroot | 0 .../apexcharts/line-chart.jte | 2 + .../app/.jteroot | 0 .../app/page.jte | 0 .../core/.jteroot | 1 + .../core/layout.jte | 0 .../apexcharts/.jteroot | 0 .../apexcharts/line-chart.jte | 2 + .../three-modules-same-alias/app/.jteroot | 2 + .../three-modules-same-alias/app/page.jte | 1 + .../three-modules-same-alias/core/.jteroot | 1 + .../three-modules-same-alias/core/layout.jte | 6 +++ .../modules/two-modules-cycle/app/.jteroot | 1 + .../modules/two-modules-cycle/app/page.jte | 1 + .../modules/two-modules-cycle/core/.jteroot | 1 + .../modules/two-modules-cycle/core/layout.jte | 5 +++ .../test/modules/two-modules/core/.jteroot | 1 - 26 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 jte/src/test/modules/empty-top-level-module/.jteroot rename jte/src/test/modules/{three-modules => empty-top-level-module}/apexcharts/.jteroot (100%) rename jte/src/test/modules/{three-modules => empty-top-level-module}/apexcharts/line-chart.jte (100%) create mode 100644 jte/src/test/modules/empty-top-level-module/checkout/.jteroot create mode 100644 jte/src/test/modules/empty-top-level-module/checkout/page.jte rename jte/src/test/modules/{three-modules => empty-top-level-module}/core/.jteroot (100%) create mode 100644 jte/src/test/modules/empty-top-level-module/core/component/css.jte create mode 100644 jte/src/test/modules/empty-top-level-module/core/layout.jte create mode 100644 jte/src/test/modules/three-modules-different-alias/apexcharts/.jteroot create mode 100644 jte/src/test/modules/three-modules-different-alias/apexcharts/line-chart.jte rename jte/src/test/modules/{three-modules => three-modules-different-alias}/app/.jteroot (100%) rename jte/src/test/modules/{three-modules => three-modules-different-alias}/app/page.jte (100%) create mode 100644 jte/src/test/modules/three-modules-different-alias/core/.jteroot rename jte/src/test/modules/{three-modules => three-modules-different-alias}/core/layout.jte (100%) create mode 100644 jte/src/test/modules/three-modules-same-alias/apexcharts/.jteroot create mode 100644 jte/src/test/modules/three-modules-same-alias/apexcharts/line-chart.jte create mode 100644 jte/src/test/modules/three-modules-same-alias/app/.jteroot create mode 100644 jte/src/test/modules/three-modules-same-alias/app/page.jte create mode 100644 jte/src/test/modules/three-modules-same-alias/core/.jteroot create mode 100644 jte/src/test/modules/three-modules-same-alias/core/layout.jte create mode 100644 jte/src/test/modules/two-modules-cycle/app/.jteroot create mode 100644 jte/src/test/modules/two-modules-cycle/app/page.jte create mode 100644 jte/src/test/modules/two-modules-cycle/core/.jteroot create mode 100644 jte/src/test/modules/two-modules-cycle/core/layout.jte diff --git a/jte/src/test/java/gg/jte/TemplateEngine_ModulesTest.java b/jte/src/test/java/gg/jte/TemplateEngine_ModulesTest.java index 74570823..a7f8c2a3 100644 --- a/jte/src/test/java/gg/jte/TemplateEngine_ModulesTest.java +++ b/jte/src/test/java/gg/jte/TemplateEngine_ModulesTest.java @@ -1,6 +1,7 @@ package gg.jte; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowable; import java.nio.file.Path; @@ -24,8 +25,29 @@ void twoModules() { } @Test - void threeModules() { - DirectoryCodeResolver codeResolver = new DirectoryCodeResolver(Path.of("src/test/modules/three-modules/app")); + void twoModulesCycle() { + DirectoryCodeResolver codeResolver = new DirectoryCodeResolver(Path.of("src/test/modules/two-modules-cycle/app")); + TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html); + + Throwable throwable = catchThrowable(() -> templateEngine.render("page.jte", null, new StringOutput())); + + assertThat(throwable).isInstanceOf(StackOverflowError.class); // TODO better error message :-D + } + + @Test + void threeModulesDifferentAlias() { + DirectoryCodeResolver codeResolver = new DirectoryCodeResolver(Path.of("src/test/modules/three-modules-different-alias/app")); + TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html); + + StringOutput output = new StringOutput(); + templateEngine.render("page.jte", null, output); + + assertThat(output.toString().trim()).isEqualToNormalizingNewlines("

line chart (app)

\nline chart (core)"); + } + + @Test + void threeModulesSameAlias() { + DirectoryCodeResolver codeResolver = new DirectoryCodeResolver(Path.of("src/test/modules/three-modules-same-alias/app")); TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html); StringOutput output = new StringOutput(); @@ -34,5 +56,19 @@ void threeModules() { assertThat(output.toString().trim()).isEqualToNormalizingNewlines("

line chart (app)

\nline chart (core)"); } + @Test + void emptyTopLevelModule() { + DirectoryCodeResolver codeResolver = new DirectoryCodeResolver(Path.of("src/test/modules/empty-top-level-module")); + TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html); + + StringOutput output = new StringOutput(); + templateEngine.render("checkout/page.jte", null, output); + + assertThat(output.toString().trim()).isEqualToNormalizingNewlines(""" + +

line chart (checkout)

+ line chart (core)"""); + } + // TODO adjust precompileAll() and generateAll() to iterate over all module files as well! } diff --git a/jte/src/test/modules/empty-top-level-module/.jteroot b/jte/src/test/modules/empty-top-level-module/.jteroot new file mode 100644 index 00000000..d65d1049 --- /dev/null +++ b/jte/src/test/modules/empty-top-level-module/.jteroot @@ -0,0 +1,3 @@ +@import apexcharts from apexcharts +@import checkout from checkout +@import core from core \ No newline at end of file diff --git a/jte/src/test/modules/three-modules/apexcharts/.jteroot b/jte/src/test/modules/empty-top-level-module/apexcharts/.jteroot similarity index 100% rename from jte/src/test/modules/three-modules/apexcharts/.jteroot rename to jte/src/test/modules/empty-top-level-module/apexcharts/.jteroot diff --git a/jte/src/test/modules/three-modules/apexcharts/line-chart.jte b/jte/src/test/modules/empty-top-level-module/apexcharts/line-chart.jte similarity index 100% rename from jte/src/test/modules/three-modules/apexcharts/line-chart.jte rename to jte/src/test/modules/empty-top-level-module/apexcharts/line-chart.jte diff --git a/jte/src/test/modules/empty-top-level-module/checkout/.jteroot b/jte/src/test/modules/empty-top-level-module/checkout/.jteroot new file mode 100644 index 00000000..a921e030 --- /dev/null +++ b/jte/src/test/modules/empty-top-level-module/checkout/.jteroot @@ -0,0 +1,2 @@ +@import core from ../core +@import apexcharts from ../apexcharts \ No newline at end of file diff --git a/jte/src/test/modules/empty-top-level-module/checkout/page.jte b/jte/src/test/modules/empty-top-level-module/checkout/page.jte new file mode 100644 index 00000000..7f0746f3 --- /dev/null +++ b/jte/src/test/modules/empty-top-level-module/checkout/page.jte @@ -0,0 +1 @@ +@template.core.layout(content = @`@template.apexcharts.line-chart("checkout")`) \ No newline at end of file diff --git a/jte/src/test/modules/three-modules/core/.jteroot b/jte/src/test/modules/empty-top-level-module/core/.jteroot similarity index 100% rename from jte/src/test/modules/three-modules/core/.jteroot rename to jte/src/test/modules/empty-top-level-module/core/.jteroot diff --git a/jte/src/test/modules/empty-top-level-module/core/component/css.jte b/jte/src/test/modules/empty-top-level-module/core/component/css.jte new file mode 100644 index 00000000..8b8b072d --- /dev/null +++ b/jte/src/test/modules/empty-top-level-module/core/component/css.jte @@ -0,0 +1,2 @@ +@param String css + diff --git a/jte/src/test/modules/empty-top-level-module/core/layout.jte b/jte/src/test/modules/empty-top-level-module/core/layout.jte new file mode 100644 index 00000000..39021d78 --- /dev/null +++ b/jte/src/test/modules/empty-top-level-module/core/layout.jte @@ -0,0 +1,6 @@ +@import gg.jte.Content + +@param Content content + +@template.component.css(css = "important")

${content}

+@template.apexcharts.line-chart("core") \ No newline at end of file diff --git a/jte/src/test/modules/three-modules-different-alias/apexcharts/.jteroot b/jte/src/test/modules/three-modules-different-alias/apexcharts/.jteroot new file mode 100644 index 00000000..e69de29b diff --git a/jte/src/test/modules/three-modules-different-alias/apexcharts/line-chart.jte b/jte/src/test/modules/three-modules-different-alias/apexcharts/line-chart.jte new file mode 100644 index 00000000..6ac3afba --- /dev/null +++ b/jte/src/test/modules/three-modules-different-alias/apexcharts/line-chart.jte @@ -0,0 +1,2 @@ +@param String name +line chart (${name}) \ No newline at end of file diff --git a/jte/src/test/modules/three-modules/app/.jteroot b/jte/src/test/modules/three-modules-different-alias/app/.jteroot similarity index 100% rename from jte/src/test/modules/three-modules/app/.jteroot rename to jte/src/test/modules/three-modules-different-alias/app/.jteroot diff --git a/jte/src/test/modules/three-modules/app/page.jte b/jte/src/test/modules/three-modules-different-alias/app/page.jte similarity index 100% rename from jte/src/test/modules/three-modules/app/page.jte rename to jte/src/test/modules/three-modules-different-alias/app/page.jte diff --git a/jte/src/test/modules/three-modules-different-alias/core/.jteroot b/jte/src/test/modules/three-modules-different-alias/core/.jteroot new file mode 100644 index 00000000..ae389598 --- /dev/null +++ b/jte/src/test/modules/three-modules-different-alias/core/.jteroot @@ -0,0 +1 @@ +@import apexcharts from ../apexcharts \ No newline at end of file diff --git a/jte/src/test/modules/three-modules/core/layout.jte b/jte/src/test/modules/three-modules-different-alias/core/layout.jte similarity index 100% rename from jte/src/test/modules/three-modules/core/layout.jte rename to jte/src/test/modules/three-modules-different-alias/core/layout.jte diff --git a/jte/src/test/modules/three-modules-same-alias/apexcharts/.jteroot b/jte/src/test/modules/three-modules-same-alias/apexcharts/.jteroot new file mode 100644 index 00000000..e69de29b diff --git a/jte/src/test/modules/three-modules-same-alias/apexcharts/line-chart.jte b/jte/src/test/modules/three-modules-same-alias/apexcharts/line-chart.jte new file mode 100644 index 00000000..6ac3afba --- /dev/null +++ b/jte/src/test/modules/three-modules-same-alias/apexcharts/line-chart.jte @@ -0,0 +1,2 @@ +@param String name +line chart (${name}) \ No newline at end of file diff --git a/jte/src/test/modules/three-modules-same-alias/app/.jteroot b/jte/src/test/modules/three-modules-same-alias/app/.jteroot new file mode 100644 index 00000000..a921e030 --- /dev/null +++ b/jte/src/test/modules/three-modules-same-alias/app/.jteroot @@ -0,0 +1,2 @@ +@import core from ../core +@import apexcharts from ../apexcharts \ No newline at end of file diff --git a/jte/src/test/modules/three-modules-same-alias/app/page.jte b/jte/src/test/modules/three-modules-same-alias/app/page.jte new file mode 100644 index 00000000..2b5ec381 --- /dev/null +++ b/jte/src/test/modules/three-modules-same-alias/app/page.jte @@ -0,0 +1 @@ +@template.core.layout(content = @`@template.apexcharts.line-chart("app")`) \ No newline at end of file diff --git a/jte/src/test/modules/three-modules-same-alias/core/.jteroot b/jte/src/test/modules/three-modules-same-alias/core/.jteroot new file mode 100644 index 00000000..ae389598 --- /dev/null +++ b/jte/src/test/modules/three-modules-same-alias/core/.jteroot @@ -0,0 +1 @@ +@import apexcharts from ../apexcharts \ No newline at end of file diff --git a/jte/src/test/modules/three-modules-same-alias/core/layout.jte b/jte/src/test/modules/three-modules-same-alias/core/layout.jte new file mode 100644 index 00000000..ed7fc09a --- /dev/null +++ b/jte/src/test/modules/three-modules-same-alias/core/layout.jte @@ -0,0 +1,6 @@ +@import gg.jte.Content + +@param Content content + +

${content}

+@template.apexcharts.line-chart("core") \ No newline at end of file diff --git a/jte/src/test/modules/two-modules-cycle/app/.jteroot b/jte/src/test/modules/two-modules-cycle/app/.jteroot new file mode 100644 index 00000000..7403868b --- /dev/null +++ b/jte/src/test/modules/two-modules-cycle/app/.jteroot @@ -0,0 +1 @@ +@import core from ../core \ No newline at end of file diff --git a/jte/src/test/modules/two-modules-cycle/app/page.jte b/jte/src/test/modules/two-modules-cycle/app/page.jte new file mode 100644 index 00000000..60311a1e --- /dev/null +++ b/jte/src/test/modules/two-modules-cycle/app/page.jte @@ -0,0 +1 @@ +@template.core.layout(content = @`App Page`) \ No newline at end of file diff --git a/jte/src/test/modules/two-modules-cycle/core/.jteroot b/jte/src/test/modules/two-modules-cycle/core/.jteroot new file mode 100644 index 00000000..8e505a42 --- /dev/null +++ b/jte/src/test/modules/two-modules-cycle/core/.jteroot @@ -0,0 +1 @@ +@import app from ../app \ No newline at end of file diff --git a/jte/src/test/modules/two-modules-cycle/core/layout.jte b/jte/src/test/modules/two-modules-cycle/core/layout.jte new file mode 100644 index 00000000..87855a03 --- /dev/null +++ b/jte/src/test/modules/two-modules-cycle/core/layout.jte @@ -0,0 +1,5 @@ +@import gg.jte.Content + +@param Content content + +

${content}

\ No newline at end of file diff --git a/jte/src/test/modules/two-modules/core/.jteroot b/jte/src/test/modules/two-modules/core/.jteroot index ae389598..e69de29b 100644 --- a/jte/src/test/modules/two-modules/core/.jteroot +++ b/jte/src/test/modules/two-modules/core/.jteroot @@ -1 +0,0 @@ -@import apexcharts from ../apexcharts \ No newline at end of file