@joist/templating 4.2.4-next.2 → 4.2.4-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -155
- package/package.json +1 -1
- package/src/lib/elements/bind.element.ts +1 -5
- package/src/lib/elements/if.element.test.ts +176 -0
- package/src/lib/elements/if.element.ts +1 -5
- package/src/lib/elements/value.element.ts +1 -7
- package/src/lib/token.test.ts +141 -11
- package/src/lib/token.ts +143 -7
- package/target/lib/elements/bind.element.js +1 -4
- package/target/lib/elements/bind.element.js.map +1 -1
- package/target/lib/elements/if.element.js +1 -6
- package/target/lib/elements/if.element.js.map +1 -1
- package/target/lib/elements/if.element.test.js +154 -0
- package/target/lib/elements/if.element.test.js.map +1 -1
- package/target/lib/elements/value.element.js +1 -7
- package/target/lib/elements/value.element.js.map +1 -1
- package/target/lib/token.d.ts +6 -1
- package/target/lib/token.js +62 -5
- package/target/lib/token.js.map +1 -1
- package/target/lib/token.test.js +119 -4
- package/target/lib/token.test.js.map +1 -1
package/target/lib/token.test.js
CHANGED
|
@@ -26,6 +26,38 @@ describe("JToken", () => {
|
|
|
26
26
|
const token = new JToken("!example.token");
|
|
27
27
|
assert.equal(token.bindTo, "example");
|
|
28
28
|
});
|
|
29
|
+
it("should parse equals operator value", () => {
|
|
30
|
+
const token = new JToken("example==value");
|
|
31
|
+
assert.equal(token.equalsValue, "value");
|
|
32
|
+
});
|
|
33
|
+
it("should handle equals operator with negation", () => {
|
|
34
|
+
const token = new JToken("!example == value");
|
|
35
|
+
assert.equal(token.equalsValue, "value");
|
|
36
|
+
assert.isTrue(token.isNegated);
|
|
37
|
+
});
|
|
38
|
+
it("should handle equals operator with nested paths", () => {
|
|
39
|
+
const token = new JToken("example.nested == value");
|
|
40
|
+
assert.equal(token.equalsValue, "value");
|
|
41
|
+
assert.deepEqual(token.path, ["nested"]);
|
|
42
|
+
});
|
|
43
|
+
it("should parse greater than operator value", () => {
|
|
44
|
+
const token = new JToken("example > 5");
|
|
45
|
+
assert.equal(token.gtValue, "5");
|
|
46
|
+
});
|
|
47
|
+
it("should parse less than operator value", () => {
|
|
48
|
+
const token = new JToken("example < 10");
|
|
49
|
+
assert.equal(token.ltValue, "10");
|
|
50
|
+
});
|
|
51
|
+
it("should handle greater than operator with negation", () => {
|
|
52
|
+
const token = new JToken("!example > 5");
|
|
53
|
+
assert.equal(token.gtValue, "5");
|
|
54
|
+
assert.isTrue(token.isNegated);
|
|
55
|
+
});
|
|
56
|
+
it("should handle less than operator with nested paths", () => {
|
|
57
|
+
const token = new JToken("example.count < 10");
|
|
58
|
+
assert.equal(token.ltValue, "10");
|
|
59
|
+
assert.deepEqual(token.path, ["count"]);
|
|
60
|
+
});
|
|
29
61
|
});
|
|
30
62
|
describe("readTokenValueFrom", () => {
|
|
31
63
|
it("should read the value from a nested object", () => {
|
|
@@ -46,10 +78,93 @@ describe("JToken", () => {
|
|
|
46
78
|
const value = token.readTokenValueFrom(obj);
|
|
47
79
|
assert.deepEqual(value, { foo: 42 });
|
|
48
80
|
});
|
|
49
|
-
it("should
|
|
50
|
-
const token = new JToken("example.
|
|
51
|
-
|
|
52
|
-
assert.
|
|
81
|
+
it("should parse values from strings", () => {
|
|
82
|
+
const token = new JToken("example.length");
|
|
83
|
+
const value = token.readTokenValueFrom("42");
|
|
84
|
+
assert.equal(value, 2);
|
|
85
|
+
});
|
|
86
|
+
it("should return true when equals against primative", () => {
|
|
87
|
+
const token = new JToken("example == active");
|
|
88
|
+
const value = token.readTokenValueFrom("active");
|
|
89
|
+
assert.isTrue(value);
|
|
90
|
+
});
|
|
91
|
+
it("should return true when equals comparison matches", () => {
|
|
92
|
+
const token = new JToken("example.status==active");
|
|
93
|
+
const obj = { status: "active" };
|
|
94
|
+
const value = token.readTokenValueFrom(obj);
|
|
95
|
+
assert.isTrue(value);
|
|
96
|
+
});
|
|
97
|
+
it("should return false when equals comparison does not match", () => {
|
|
98
|
+
const token = new JToken("example.status==active");
|
|
99
|
+
const obj = { status: "inactive" };
|
|
100
|
+
const value = token.readTokenValueFrom(obj);
|
|
101
|
+
assert.isFalse(value);
|
|
102
|
+
});
|
|
103
|
+
it("should handle equals comparison with numbers", () => {
|
|
104
|
+
const token = new JToken("example.count == 5");
|
|
105
|
+
const obj = { count: 5 };
|
|
106
|
+
const value = token.readTokenValueFrom(obj);
|
|
107
|
+
assert.isTrue(value);
|
|
108
|
+
});
|
|
109
|
+
it("should handle equals comparison with nested paths", () => {
|
|
110
|
+
const token = new JToken("example.user.status == active");
|
|
111
|
+
const obj = { user: { status: "active" } };
|
|
112
|
+
const value = token.readTokenValueFrom(obj);
|
|
113
|
+
assert.isTrue(value);
|
|
114
|
+
});
|
|
115
|
+
it("should handle equals comparison with undefined values", () => {
|
|
116
|
+
const token = new JToken("example.status == active");
|
|
117
|
+
const obj = { status: undefined };
|
|
118
|
+
const value = token.readTokenValueFrom(obj);
|
|
119
|
+
assert.isFalse(value);
|
|
120
|
+
});
|
|
121
|
+
it("should return true when greater than comparison matches", () => {
|
|
122
|
+
const token = new JToken("example.count > 5");
|
|
123
|
+
const obj = { count: 10 };
|
|
124
|
+
const value = token.readTokenValueFrom(obj);
|
|
125
|
+
assert.isTrue(value);
|
|
126
|
+
});
|
|
127
|
+
it("should return false when greater than comparison does not match", () => {
|
|
128
|
+
const token = new JToken("example.count > 5");
|
|
129
|
+
const obj = { count: 3 };
|
|
130
|
+
const value = token.readTokenValueFrom(obj);
|
|
131
|
+
assert.isFalse(value);
|
|
132
|
+
});
|
|
133
|
+
it("should return true when less than comparison matches", () => {
|
|
134
|
+
const token = new JToken("example.count < 10");
|
|
135
|
+
const obj = { count: 5 };
|
|
136
|
+
const value = token.readTokenValueFrom(obj);
|
|
137
|
+
assert.isTrue(value);
|
|
138
|
+
});
|
|
139
|
+
it("should return false when less than comparison does not match", () => {
|
|
140
|
+
const token = new JToken("example.count < 10");
|
|
141
|
+
const obj = { count: 15 };
|
|
142
|
+
const value = token.readTokenValueFrom(obj);
|
|
143
|
+
assert.isFalse(value);
|
|
144
|
+
});
|
|
145
|
+
it("should handle greater than comparison with string numbers", () => {
|
|
146
|
+
const token = new JToken("example.count > 5");
|
|
147
|
+
const obj = { count: "10" };
|
|
148
|
+
const value = token.readTokenValueFrom(obj);
|
|
149
|
+
assert.isTrue(value);
|
|
150
|
+
});
|
|
151
|
+
it("should handle less than comparison with string numbers", () => {
|
|
152
|
+
const token = new JToken("example.count < 10");
|
|
153
|
+
const obj = { count: "5" };
|
|
154
|
+
const value = token.readTokenValueFrom(obj);
|
|
155
|
+
assert.isTrue(value);
|
|
156
|
+
});
|
|
157
|
+
it("should handle greater than comparison with undefined values", () => {
|
|
158
|
+
const token = new JToken("example.count > 5");
|
|
159
|
+
const obj = { count: undefined };
|
|
160
|
+
const value = token.readTokenValueFrom(obj);
|
|
161
|
+
assert.isFalse(value);
|
|
162
|
+
});
|
|
163
|
+
it("should handle less than comparison with undefined values", () => {
|
|
164
|
+
const token = new JToken("example.count < 10");
|
|
165
|
+
const obj = { count: undefined };
|
|
166
|
+
const value = token.readTokenValueFrom(obj);
|
|
167
|
+
assert.isFalse(value);
|
|
53
168
|
});
|
|
54
169
|
});
|
|
55
170
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../src/lib/token.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../src/lib/token.test.ts"],"names":[],"mappings":"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"}
|