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
literal 0
HcmV?d00001
diff --git a/tests/integration/data/Renderer006-ForEach-Continue-stripped-table/viewModel.json b/tests/integration/data/Renderer006-ForEach-Continue-stripped-table/viewModel.json
new file mode 100644
index 0000000..0316180
--- /dev/null
+++ b/tests/integration/data/Renderer006-ForEach-Continue-stripped-table/viewModel.json
@@ -0,0 +1,52 @@
+{
+ "projects": [
+ {
+ "name": "ExcelJS",
+ "role": "maintainer",
+ "platform": "github",
+ "link": "https://github.com/exceljs/exceljs",
+ "stars": 5300,
+ "forks": 682
+ },
+ {
+ "name": "xlsx-import",
+ "role": "owner",
+ "platform": "github",
+ "link": "https://github.com/siemienik/xlsx-import",
+ "stars": 2,
+ "forks": 0
+ },
+ {
+ "name": "xlsx-import",
+ "role": "owner",
+ "platform": "npm",
+ "link": "https://www.npmjs.com/package/xlsx-import",
+ "stars": "n.o.",
+ "forks": "n.o."
+ },
+ {
+ "name": "xlsx-renderer",
+ "role": "owner",
+ "platform": "github",
+ "link": "https://github.com/siemienik/xlsx-renderer",
+ "stars": 2,
+ "forks": 0
+ },
+ {
+ "name": "xlsx-renderer",
+ "role": "owner",
+ "platform": "npm",
+ "link": "https://www.npmjs.com/package/xlsx-renderer",
+ "stars": "n.o.",
+ "forks": "n.o."
+ },
+ {
+ "name": "TS Package Structure",
+ "role": "owner",
+ "platform": "github",
+ "link": "https://github.com/Siemienik/ts-package-structure",
+ "stars": 3,
+ "forks": 0
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/integration/data/Renderer007-ForEach-Sum/expected.xlsx b/tests/integration/data/Renderer007-ForEach-Sum/expected.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..6ffdaa4ff657e42f7875738263a3b7f4c26a3350
GIT binary patch
literal 10086
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
LeWUm2`}F?-@Ms
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
literal 0
HcmV?d00001
diff --git a/tests/integration/data/Renderer007-ForEach-Sum/viewModel.json b/tests/integration/data/Renderer007-ForEach-Sum/viewModel.json
new file mode 100644
index 0000000..0316180
--- /dev/null
+++ b/tests/integration/data/Renderer007-ForEach-Sum/viewModel.json
@@ -0,0 +1,52 @@
+{
+ "projects": [
+ {
+ "name": "ExcelJS",
+ "role": "maintainer",
+ "platform": "github",
+ "link": "https://github.com/exceljs/exceljs",
+ "stars": 5300,
+ "forks": 682
+ },
+ {
+ "name": "xlsx-import",
+ "role": "owner",
+ "platform": "github",
+ "link": "https://github.com/siemienik/xlsx-import",
+ "stars": 2,
+ "forks": 0
+ },
+ {
+ "name": "xlsx-import",
+ "role": "owner",
+ "platform": "npm",
+ "link": "https://www.npmjs.com/package/xlsx-import",
+ "stars": "n.o.",
+ "forks": "n.o."
+ },
+ {
+ "name": "xlsx-renderer",
+ "role": "owner",
+ "platform": "github",
+ "link": "https://github.com/siemienik/xlsx-renderer",
+ "stars": 2,
+ "forks": 0
+ },
+ {
+ "name": "xlsx-renderer",
+ "role": "owner",
+ "platform": "npm",
+ "link": "https://www.npmjs.com/package/xlsx-renderer",
+ "stars": "n.o.",
+ "forks": "n.o."
+ },
+ {
+ "name": "TS Package Structure",
+ "role": "owner",
+ "platform": "github",
+ "link": "https://github.com/Siemienik/ts-package-structure",
+ "stars": 3,
+ "forks": 0
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/integration/data/Renderer008-Delete/expected.xlsx b/tests/integration/data/Renderer008-Delete/expected.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..956870fdb7208159891d17dc62b2de338aaba748
GIT binary patch
literal 6891
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
literal 0
HcmV?d00001
diff --git a/tests/integration/data/Renderer008-Delete/template.xlsx b/tests/integration/data/Renderer008-Delete/template.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..36c148f42e414164e5f46ad4dc087d7e0ec68d67
GIT binary patch
literal 9951
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