lightview 1.6.3-b → 1.6.6-b
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 +2 -2
- package/components/chart.html +6 -5
- package/components/gauge.html +1 -1
- package/examples/chart.html +11 -9
- package/examples/foreign.html +27 -13
- package/examples/forgeinform.html +29 -8
- package/examples/form.html +1 -1
- package/examples/medium/remote.html +59 -0
- package/examples/remote.json +1 -1
- package/examples/types.html +1 -0
- package/examples/xor.html +1 -1
- package/jest.config.json +1 -1
- package/lightview.js +287 -209
- package/package.json +1 -1
- package/test/basic.html +1 -1
- package/test/extended.html +32 -0
- package/test/extended.test.mjs +448 -0
- package/types.js +62 -53
package/test/basic.html
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<title>Extended</title>
|
|
6
|
+
<script src="../lightview.js?as=x-body"></script>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<script type="lightview/module">
|
|
10
|
+
const {array,boolean,number,object,string} = await import("../types.js");
|
|
11
|
+
|
|
12
|
+
self.variables({strictarray:array},{set:[]});
|
|
13
|
+
self.variables({strictboolean:boolean},{set:true});
|
|
14
|
+
self.variables({strictnumber:number},{set:0});
|
|
15
|
+
self.variables({strictobject:object},{set:{}});
|
|
16
|
+
self.variables({strictstring:string},{set:"test"});
|
|
17
|
+
self.variables({extendedarray:array({required:true,minlength:2,maxlength:3})});
|
|
18
|
+
self.variables({extendedboolean:boolean({required:true})});
|
|
19
|
+
self.variables({extendednumber:number({required:true,min:1,max:4,step:2,allowNaN:false})});
|
|
20
|
+
self.variables({extendedobject:object({required:true})});
|
|
21
|
+
self.variables({extendedstring:string({required:true,minlength:2,maxlength:4})});
|
|
22
|
+
|
|
23
|
+
self.variables({allowNaNnumber:number({min:null,max:null,step:null})});
|
|
24
|
+
self.variables({noNaNnumber:number({allowNaN:false})});
|
|
25
|
+
|
|
26
|
+
//debugger;
|
|
27
|
+
//self.setVariableValue("extendedarray",[]);
|
|
28
|
+
//console.log(typeof(extendedarray),extendedarray);
|
|
29
|
+
|
|
30
|
+
</script>
|
|
31
|
+
</body>
|
|
32
|
+
</html>
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
import 'expect-puppeteer';
|
|
2
|
+
function reviver(property,value) {
|
|
3
|
+
if(value==="@-Infinity") return -Infinity;
|
|
4
|
+
if(value==="@Infinity") return Infinity;
|
|
5
|
+
if(value==="@NaN") return NaN;
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
describe('Lightview - Variables', () => {
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
await page.goto('http://localhost:8080/test/extended.html');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('should be titled "Extended"', async () => {
|
|
15
|
+
await expect(page.title()).resolves.toMatch('Extended');
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test('strictarray - should be array', async () => {
|
|
19
|
+
const result = await page.evaluate(() => {
|
|
20
|
+
return document.body.getVariableValue("strictarray")
|
|
21
|
+
});
|
|
22
|
+
expect(Array.isArray(result)).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('strictarray - should set', async () => {
|
|
26
|
+
const result = await page.evaluate(() => {
|
|
27
|
+
try {
|
|
28
|
+
document.body.setVariableValue("strictarray",[]);
|
|
29
|
+
} catch(e) {
|
|
30
|
+
return e;
|
|
31
|
+
}
|
|
32
|
+
return document.body.getVariableValue("strictarray")
|
|
33
|
+
});
|
|
34
|
+
expect(Array.isArray(result)).toBe(true);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('strictarray - should allow null', async () => {
|
|
38
|
+
const result = await page.evaluate(() => {
|
|
39
|
+
try {
|
|
40
|
+
document.body.setVariableValue("strictarray",undefined);
|
|
41
|
+
document.body.setVariableValue("strictarray",null);
|
|
42
|
+
} catch(e) {
|
|
43
|
+
return e;
|
|
44
|
+
}
|
|
45
|
+
return document.body.getVariableValue("strictarray")
|
|
46
|
+
});
|
|
47
|
+
expect(result).toBe(null);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('strictarray - should throw', async () => {
|
|
51
|
+
const result = await page.evaluate(() => {
|
|
52
|
+
try {
|
|
53
|
+
document.body.setVariableValue("strictarray","false");
|
|
54
|
+
} catch(e) {
|
|
55
|
+
return e.message;
|
|
56
|
+
}
|
|
57
|
+
return document.body.getVariableValue("strictarray");
|
|
58
|
+
});
|
|
59
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
60
|
+
expect(name).toBe("strictarray");
|
|
61
|
+
expect(validityState.typeMismatch).toBe(true);
|
|
62
|
+
expect(validityState.value).toBe("false");
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('strictboolean - should be boolean', async () => {
|
|
66
|
+
const result = await page.evaluate(() => {
|
|
67
|
+
return document.body.getVariableValue("strictboolean")
|
|
68
|
+
});
|
|
69
|
+
expect(result).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test('strictboolean - should set', async () => {
|
|
73
|
+
const result = await page.evaluate(() => {
|
|
74
|
+
try {
|
|
75
|
+
document.body.setVariableValue("strictboolean",false);
|
|
76
|
+
} catch(e) {
|
|
77
|
+
return e.message;
|
|
78
|
+
}
|
|
79
|
+
return document.body.getVariableValue("strictboolean")
|
|
80
|
+
});
|
|
81
|
+
expect(result).toBe(false);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test('strictboolean - should allow null', async () => {
|
|
85
|
+
const result = await page.evaluate(() => {
|
|
86
|
+
try {
|
|
87
|
+
document.body.setVariableValue("strictboolean",undefined);
|
|
88
|
+
document.body.setVariableValue("strictboolean",null);
|
|
89
|
+
} catch(e) {
|
|
90
|
+
return e.message;
|
|
91
|
+
}
|
|
92
|
+
return document.body.getVariableValue("strictboolean")
|
|
93
|
+
});
|
|
94
|
+
expect(result).toBe(null);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test('strictboolean - should throw', async () => {
|
|
98
|
+
const result = await page.evaluate(() => {
|
|
99
|
+
try {
|
|
100
|
+
document.body.setVariableValue("strictboolean","true");
|
|
101
|
+
} catch(e) {
|
|
102
|
+
return e.message;
|
|
103
|
+
}
|
|
104
|
+
return document.body.getVariableValue("strictboolean");
|
|
105
|
+
});
|
|
106
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
107
|
+
expect(name).toBe("strictboolean");
|
|
108
|
+
expect(validityState.typeMismatch).toBe(true);
|
|
109
|
+
expect(validityState.value).toBe("true");
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
test('strictnumber - should be number', async () => {
|
|
113
|
+
const result = await page.evaluate(() => {
|
|
114
|
+
return document.body.getVariableValue("strictnumber")
|
|
115
|
+
});
|
|
116
|
+
expect(result).toBe(0);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
test('strictnumber - should set', async () => {
|
|
120
|
+
const result = await page.evaluate(() => {
|
|
121
|
+
try {
|
|
122
|
+
document.body.setVariableValue("strictnumber",1);
|
|
123
|
+
} catch(e) {
|
|
124
|
+
return e.message;
|
|
125
|
+
}
|
|
126
|
+
return document.body.getVariableValue("strictnumber")
|
|
127
|
+
});
|
|
128
|
+
expect(result).toBe(1);
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
test('strictnumber - should allow null', async () => {
|
|
132
|
+
const result = await page.evaluate(() => {
|
|
133
|
+
try {
|
|
134
|
+
document.body.setVariableValue("strictnumber",undefined);
|
|
135
|
+
document.body.setVariableValue("strictnumber",null);
|
|
136
|
+
} catch(e) {
|
|
137
|
+
return e.message;
|
|
138
|
+
}
|
|
139
|
+
return document.body.getVariableValue("strictnumber")
|
|
140
|
+
});
|
|
141
|
+
expect(result).toBe(null);
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
test('strictnumber - should throw', async () => {
|
|
145
|
+
const result = await page.evaluate(() => {
|
|
146
|
+
try {
|
|
147
|
+
document.body.setVariableValue("strictnumber","0");
|
|
148
|
+
} catch(e) {
|
|
149
|
+
return e.message;
|
|
150
|
+
}
|
|
151
|
+
return document.body.getVariableValue("strictnumber");
|
|
152
|
+
});
|
|
153
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
154
|
+
expect(name).toBe("strictnumber");
|
|
155
|
+
expect(validityState.typeMismatch).toBe(true);
|
|
156
|
+
expect(validityState.value).toBe("0");
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
test('strictobject - should be object', async () => {
|
|
160
|
+
const result = await page.evaluate(() => {
|
|
161
|
+
return document.body.getVariableValue("strictobject")
|
|
162
|
+
});
|
|
163
|
+
expect(typeof(result)).toBe("object");
|
|
164
|
+
expect(Object.keys(result).length).toBe(0);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
test('strictobject - should set', async () => {
|
|
168
|
+
const result = await page.evaluate(() => {
|
|
169
|
+
try {
|
|
170
|
+
document.body.setVariableValue("strictobject", {test:"test"});
|
|
171
|
+
} catch(e) {
|
|
172
|
+
return e.message;
|
|
173
|
+
}
|
|
174
|
+
return document.body.getVariableValue("strictobject")
|
|
175
|
+
});
|
|
176
|
+
expect(typeof(result)).toBe("object");
|
|
177
|
+
expect(Object.keys(result).length).toBe(1);
|
|
178
|
+
expect(result.test).toBe("test");
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
test('strictobject - should allow null', async () => {
|
|
182
|
+
const result = await page.evaluate(() => {
|
|
183
|
+
try {
|
|
184
|
+
document.body.setVariableValue("strictobject",undefined);
|
|
185
|
+
document.body.setVariableValue("strictobject",null);
|
|
186
|
+
} catch(e) {
|
|
187
|
+
return e.message;
|
|
188
|
+
}
|
|
189
|
+
return document.body.getVariableValue("strictobject")
|
|
190
|
+
});
|
|
191
|
+
expect(result).toBe(null);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
test('strictobject - should throw', async () => {
|
|
195
|
+
const result = await page.evaluate(() => {
|
|
196
|
+
try {
|
|
197
|
+
document.body.setVariableValue("strictobject","false");
|
|
198
|
+
} catch(e) {
|
|
199
|
+
return e.message;
|
|
200
|
+
}
|
|
201
|
+
return document.body.getVariableValue("strictobject");
|
|
202
|
+
});
|
|
203
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
204
|
+
expect(name).toBe("strictobject");
|
|
205
|
+
expect(validityState.typeMismatch).toBe(true);
|
|
206
|
+
expect(validityState.value).toBe("false");
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
test('strictstring - should be string', async () => {
|
|
210
|
+
const result = await page.evaluate(() => {
|
|
211
|
+
return document.body.getVariableValue("strictstring")
|
|
212
|
+
});
|
|
213
|
+
expect(result).toBe("test");
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
test('strictstring - should set', async () => {
|
|
217
|
+
const result = await page.evaluate(() => {
|
|
218
|
+
try {
|
|
219
|
+
document.body.setVariableValue("strictstring","anothertest");
|
|
220
|
+
} catch(e) {
|
|
221
|
+
return e.message;
|
|
222
|
+
}
|
|
223
|
+
return document.body.getVariableValue("strictstring")
|
|
224
|
+
});
|
|
225
|
+
expect(result).toBe("anothertest");
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
test('strictstring - should allow null', async () => {
|
|
229
|
+
const result = await page.evaluate(() => {
|
|
230
|
+
try {
|
|
231
|
+
document.body.setVariableValue("strictstring",undefined);
|
|
232
|
+
document.body.setVariableValue("strictstring",null);
|
|
233
|
+
} catch(e) {
|
|
234
|
+
return e.message;
|
|
235
|
+
}
|
|
236
|
+
return document.body.getVariableValue("strictstring")
|
|
237
|
+
});
|
|
238
|
+
expect(result).toBe(null);
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
test('strictstring - should throw', async () => {
|
|
242
|
+
const result = await page.evaluate(() => {
|
|
243
|
+
try {
|
|
244
|
+
document.body.setVariableValue("strictstring",0);
|
|
245
|
+
} catch(e) {
|
|
246
|
+
return e.message;
|
|
247
|
+
}
|
|
248
|
+
return document.body.getVariableValue("strictstring");
|
|
249
|
+
});
|
|
250
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
251
|
+
expect(name).toBe("strictstring");
|
|
252
|
+
expect(validityState.typeMismatch).toBe(true);
|
|
253
|
+
expect(validityState.value).toBe(0);
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
test('extendedarray - should respect minlength', async () => {
|
|
257
|
+
const result = await page.evaluate(() => {
|
|
258
|
+
try {
|
|
259
|
+
document.body.setVariableValue("extendedarray",[]);
|
|
260
|
+
} catch(e) {
|
|
261
|
+
return e.message;
|
|
262
|
+
}
|
|
263
|
+
return document.body.getVariableValue("extendedarray")
|
|
264
|
+
});
|
|
265
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
266
|
+
expect(name).toBe("extendedarray");
|
|
267
|
+
expect(validityState.tooShort).toBe(true);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
test('extendedarray - should respect maxlength', async () => {
|
|
271
|
+
const result = await page.evaluate(() => {
|
|
272
|
+
try {
|
|
273
|
+
document.body.setVariableValue("extendedarray",[1,2,3,4,5]);
|
|
274
|
+
} catch(e) {
|
|
275
|
+
return e.message;
|
|
276
|
+
}
|
|
277
|
+
return document.body.getVariableValue("extendedarray")
|
|
278
|
+
});
|
|
279
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
280
|
+
expect(name).toBe("extendedarray");
|
|
281
|
+
expect(validityState.tooLong).toBe(true);
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
test('extendedarray - should throw and not allow null', async () => {
|
|
285
|
+
const result = await page.evaluate(() => {
|
|
286
|
+
try {
|
|
287
|
+
document.body.setVariableValue("extendedarray",null);
|
|
288
|
+
} catch(e) {
|
|
289
|
+
return e.message;
|
|
290
|
+
}
|
|
291
|
+
return document.body.getVariableValue("extendedarray")
|
|
292
|
+
});
|
|
293
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
294
|
+
expect(name).toBe("extendedarray");
|
|
295
|
+
expect(validityState.valueMissing).toBe(true);
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
test('extendednumber - should throw and not allow null', async () => {
|
|
299
|
+
const result = await page.evaluate(() => {
|
|
300
|
+
try {
|
|
301
|
+
document.body.setVariableValue("extendednumber",null);
|
|
302
|
+
} catch(e) {
|
|
303
|
+
return e.message;
|
|
304
|
+
}
|
|
305
|
+
return document.body.getVariableValue("extendednumber")
|
|
306
|
+
});
|
|
307
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
308
|
+
expect(name).toBe("extendednumber");
|
|
309
|
+
expect(validityState.valueMissing).toBe(true);
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
test('extendednumber - should throw and not allow NaN', async () => {
|
|
313
|
+
const result = await page.evaluate(() => {
|
|
314
|
+
try {
|
|
315
|
+
document.body.setVariableValue("extendednumber",NaN);
|
|
316
|
+
} catch(e) {
|
|
317
|
+
return e.message;
|
|
318
|
+
}
|
|
319
|
+
return document.body.getVariableValue("extendednumber")
|
|
320
|
+
});
|
|
321
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
322
|
+
expect(name).toBe("extendednumber");
|
|
323
|
+
expect(validityState.badInput).toBe(true);
|
|
324
|
+
//expect(validityState.value).toBe(null);
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
test('extendednumber - should respect min', async () => {
|
|
328
|
+
const result = await page.evaluate(() => {
|
|
329
|
+
try {
|
|
330
|
+
document.body.setVariableValue("extendednumber",0);
|
|
331
|
+
} catch(e) {
|
|
332
|
+
return e.message;
|
|
333
|
+
}
|
|
334
|
+
return document.body.getVariableValue("extendednumber")
|
|
335
|
+
});
|
|
336
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
337
|
+
expect(name).toBe("extendednumber");
|
|
338
|
+
expect(validityState.rangeUnderflow).toBe(true);
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
test('extendednumber - should allow between and allow step', async () => {
|
|
342
|
+
const result = await page.evaluate(() => {
|
|
343
|
+
try {
|
|
344
|
+
document.body.setVariableValue("extendednumber",4);
|
|
345
|
+
} catch(e) {
|
|
346
|
+
return e.message;
|
|
347
|
+
}
|
|
348
|
+
return document.body.getVariableValue("extendednumber")
|
|
349
|
+
});
|
|
350
|
+
expect(result).toBe(4);
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
test('extendednumber - should respect max', async () => {
|
|
354
|
+
const result = await page.evaluate(() => {
|
|
355
|
+
try {
|
|
356
|
+
document.body.setVariableValue("extendednumber",5);
|
|
357
|
+
} catch(e) {
|
|
358
|
+
return e.message;
|
|
359
|
+
}
|
|
360
|
+
return document.body.getVariableValue("extendednumber")
|
|
361
|
+
});
|
|
362
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
363
|
+
expect(name).toBe("extendednumber");
|
|
364
|
+
expect(validityState.rangeOverflow).toBe(true);
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
test('extendednumber - should respect step', async () => {
|
|
368
|
+
const result = await page.evaluate(() => {
|
|
369
|
+
try {
|
|
370
|
+
document.body.setVariableValue("extendednumber",3);
|
|
371
|
+
} catch(e) {
|
|
372
|
+
return e.message;
|
|
373
|
+
}
|
|
374
|
+
return document.body.getVariableValue("extendednumber")
|
|
375
|
+
});
|
|
376
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
377
|
+
expect(name).toBe("extendednumber");
|
|
378
|
+
expect(validityState.rangeUnderflow).toBe(true);
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
test('allowNaNnumber - should allow NaN', async () => {
|
|
382
|
+
const result = await page.evaluate(() => {
|
|
383
|
+
try {
|
|
384
|
+
document.body.setVariableValue("allowNaNnumber",NaN);
|
|
385
|
+
} catch(e) {
|
|
386
|
+
return e.message;
|
|
387
|
+
}
|
|
388
|
+
return document.body.getVariableValue("allowNaNnumber")
|
|
389
|
+
});
|
|
390
|
+
expect(typeof(result)==="number" && isNaN(result)).toBe(true);
|
|
391
|
+
});
|
|
392
|
+
|
|
393
|
+
test('noNaNnumber - should not allow NaN', async () => {
|
|
394
|
+
const result = await page.evaluate(() => {
|
|
395
|
+
try {
|
|
396
|
+
document.body.setVariableValue("noNaNnumber",NaN);
|
|
397
|
+
} catch(e) {
|
|
398
|
+
return e.message;
|
|
399
|
+
}
|
|
400
|
+
return document.body.getVariableValue("noNaNnumber")
|
|
401
|
+
});
|
|
402
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
403
|
+
expect(name).toBe("noNaNnumber");
|
|
404
|
+
expect(validityState.badInput).toBe(true);
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
test('extendedstring - should respect minlength', async () => {
|
|
408
|
+
const result = await page.evaluate(() => {
|
|
409
|
+
try {
|
|
410
|
+
document.body.setVariableValue("extendedstring","a");
|
|
411
|
+
} catch(e) {
|
|
412
|
+
return e.message;
|
|
413
|
+
}
|
|
414
|
+
return document.body.getVariableValue("extendedstring")
|
|
415
|
+
});
|
|
416
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
417
|
+
expect(name).toBe("extendedstring");
|
|
418
|
+
expect(validityState.tooShort).toBe(true);
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
test('extendedstring - should respect maxlength', async () => {
|
|
422
|
+
const result = await page.evaluate(() => {
|
|
423
|
+
try {
|
|
424
|
+
document.body.setVariableValue("extendedstring","abcdefg");
|
|
425
|
+
} catch(e) {
|
|
426
|
+
return e.message;
|
|
427
|
+
}
|
|
428
|
+
return document.body.getVariableValue("extendedstring")
|
|
429
|
+
});
|
|
430
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
431
|
+
expect(name).toBe("extendedstring");
|
|
432
|
+
expect(validityState.tooLong).toBe(true);
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
test('extendedstring - should throw and not allow null', async () => {
|
|
436
|
+
const result = await page.evaluate(() => {
|
|
437
|
+
try {
|
|
438
|
+
document.body.setVariableValue("extendedstring",null);
|
|
439
|
+
} catch(e) {
|
|
440
|
+
return e.message;
|
|
441
|
+
}
|
|
442
|
+
return document.body.getVariableValue("extendedstring")
|
|
443
|
+
});
|
|
444
|
+
const {name,validityState} = JSON.parse(result,reviver);
|
|
445
|
+
expect(name).toBe("extendedstring");
|
|
446
|
+
expect(validityState.valueMissing).toBe(true);
|
|
447
|
+
});
|
|
448
|
+
})
|