forked from surveyjs/survey-library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtextPreprocessorTests.ts
73 lines (68 loc) · 3.8 KB
/
textPreprocessorTests.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import {TextPreProcessor} from "../src/textPreProcessor";
import {ProcessValue} from "../src/conditionProcessValue";
export default QUnit.module("TextPreprocessorTests");
QUnit.test("Replace simple names", function (assert) {
var processor = new TextPreProcessor();
processor.onProcess = function (name) { return "aaa" + name; };
var result = processor.process("test1 {111} test2");
assert.equal(result, "test1 aaa111 test2", "in the middle");
result = processor.process("{111} test2");
assert.equal(result, "aaa111 test2", "at the start");
result = processor.process("test1{111}");
assert.equal(result, "test1aaa111", "at the end");
result = processor.process("test1{aaa bbb}");
assert.equal(result, "test1{aaa bbb}", "do not process several words");
result = processor.process("test1{aaa-bbb}");
assert.equal(result, "test1{aaa-bbb}", "do not process several words separed by any symbols");
result = processor.process("test1{ bbb }");
assert.equal(result, "test1aaabbb", "removespaces");
result = processor.process("test1{ }");
assert.equal(result, "test1{ }", "do not process empty");
});
QUnit.test("onHasValue event", function (assert) {
var processor = new TextPreProcessor();
processor.onProcess = function (name) { return "Andrew"; };
processor.onHasValue = function (name) { return name == "myname" };
var result = processor.process("test1 {name} test2");
assert.equal(result, "test1 {name} test2", "do not process - name is unknown");
var result = processor.process("test1 {myname} test2");
assert.equal(result, "test1 Andrew test2", "process successfull");
});
QUnit.test("ProcessValue getFirst Name", function (assert) {
var process = new ProcessValue();
assert.equal(process.getFirstName("name1"), "name1", "name is the same");
assert.equal(process.getFirstName("name-1"), "name-1", "name is the same 2");
assert.equal(process.getFirstName("name-1.name2"), "name-1", "till .");
assert.equal(process.getFirstName("name-1[0].value"), "name-1", "till [");
});
QUnit.test("ProcessValue getFirst Name", function (assert) {
var process = new ProcessValue();
assert.equal(process.getFirstName("name1"), "name1", "name is the same");
assert.equal(process.getFirstName("name-1"), "name-1", "name is the same 2");
assert.equal(process.getFirstName("name-1.name2"), "name-1", "till .");
assert.equal(process.getFirstName("name-1[0].value"), "name-1", "till [");
});
QUnit.test("ProcessValue getValue/hasValue, nested values", function (assert) {
var process = new ProcessValue();
var value = { a: 1, b: { d: 2 }, c: { e: { f: 3 } } };
assert.equal(process.getValue("a", value), 1, "a=1");
assert.equal(process.getValue("b.d", value), 2, "b.d=2");
assert.equal(process.getValue("c.e.f", value), 3, "c.e.f=3");
assert.equal(process.hasValue("aaa", value), false);
assert.equal(process.hasValue("a", value), true);
assert.equal(process.hasValue("b", value), true);
assert.equal(process.hasValue("b.d", value), true);
assert.equal(process.hasValue("c", value), true);
assert.equal(process.hasValue("c.e", value), true);
assert.equal(process.hasValue("c.e.f", value), true);
});
QUnit.test("ProcessValue getValue/hasValue, arrays and nested values", function (assert) {
var process = new ProcessValue();
var value = { a: [1, 2], b: [{ d: 2 }, { c: [3, { d: 4 }] }]};
assert.equal(process.getValue("a[0]", value), 1, "a[0]=1");
assert.equal(process.getValue("a[1]", value), 2, "a[1]=2");
assert.equal(process.getValue("a[3]", value), null, "a[3] - out of bounds");
assert.equal(process.getValue("b[0].d", value), 2, "b[0].d=2");
assert.equal(process.getValue("b[1].c[0]", value), 3, "c[0]=3");
assert.equal(process.getValue("b[1].c[1].d", value), 4, "c[0].d=4");
});