1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- "use strict"
- const test = require("./util").test
- const assert = require("assert")
- describe("iteration", () => {
- describe("without index", () => {
- it("should repeat string N times", () => {
- test(
- [
- "{{~it.arr:x}}*{{~}}",
- "{{~ it.arr:x }}*{{~}}",
- "{{~ it.arr: x }}*{{~}}",
- "{{~ it.arr :x }}*{{~}}",
- ],
- {arr: Array(3)},
- "***"
- )
- })
- it("should concatenate items", () => {
- test(["{{~it.arr:x}}{{=x}}{{~}}"], {arr: [1, 2, 3]}, "123")
- })
- })
- describe("with index", () => {
- it("should repeat string N times", () => {
- test(["{{~it.arr:x:i}}*{{~}}", "{{~ it.arr : x : i }}*{{~}}"], {arr: Array(3)}, "***")
- })
- it("should concatenate indices", () => {
- test(["{{~it.arr:x:i}}{{=i}}{{~}}"], {arr: Array(3)}, "012")
- })
- it("should concatenate indices and items", () => {
- test(
- ["{{~it.arr:x:i}}{{?i}}, {{?}}{{=i}}:{{=x}}{{~}}"],
- {arr: [10, 20, 30]},
- "0:10, 1:20, 2:30"
- )
- })
- it("should interpolate nested array even if the same index variable is used", () => {
- test(
- ["{{~it.arr:x:i}}{{~x:y:i}}{{=y}}{{~}}{{~}}"],
- {
- arr: [
- [1, 2, 3],
- [4, 5, 6],
- ],
- },
- "123456"
- )
- })
- })
- describe("iterables", () => {
- const set = new Set([1, 2, 3])
- describe("without index", () => {
- it("should repeat string N times", () => {
- assert.strictEqual(Array.isArray(set.values()), false)
- test(["{{~it.arr:x}}*{{~}}"], {arr: set.values()}, "***")
- })
- it("should concatenate items", () => {
- test(["{{~it.arr:x}}{{=x}}{{~}}"], {arr: set.values()}, "123")
- })
- })
- describe("with index", () => {
- it("should repeat string N times", () => {
- test(["{{~it.arr:x:i}}*{{~}}"], {arr: set.values()}, "***")
- })
- it("should concatenate indices", () => {
- test(["{{~it.arr:x:i}}{{=i}}{{~}}"], {arr: set.values()}, "012")
- })
- it("should concatenate indices and items", () => {
- test(
- ["{{~it.arr:x:i}}{{?i}}, {{?}}{{=i}}:{{=x}}{{~}}"],
- {arr: set.values()},
- "0:1, 1:2, 2:3"
- )
- })
- })
- })
- })
|