-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.spec.js
90 lines (83 loc) · 2.2 KB
/
test.spec.js
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
require("mocha");
const { templateLiteral } = require("./main");
let str, source, res, expectedResult;
describe("Main test:", () => {
it("should parse simple template", done => {
str = "hello {{ my.val }}";
source = {
my: {
val: "world"
}
};
res = templateLiteral(str, source);
expectedResult = "hello world";
if (res !== expectedResult) throw new Error("wrong value", expectedResult);
done();
});
it("should parse multiple values", done => {
str = "{{ a.one }}, {{ a.two }}, {{ a.three }}";
source = {
a: {
one: "foo",
two: "bar",
three: "baz"
}
};
res = templateLiteral(str, source);
expectedResult = "foo, bar, baz";
if (res !== expectedResult) throw new Error("wrong value", expectedResult);
done();
});
it("should parse values of different types", done => {
str = "{{ a.one }}, {{ a.two }}, {{ a.three }}";
source = {
a: {
one: "foo",
two: 52,
three: false
}
};
res = templateLiteral(str, source);
expectedResult = "foo, 52, false";
if (res !== expectedResult)
throw new Error("wrong value, expected", expectedResult);
done();
});
it("should error on values that don't exist", done => {
str = "{{ a.one }}, {{ a.two }}, {{ a.three }}";
source = {
a: {
one: "foo",
two: 52
}
};
try {
res = templateLiteral(str, source);
throw new Error("func should error", res);
} catch (e) {
expectedMsg = "{{ a.three }} does not exist in source";
if (e.message !== expectedMsg)
throw new Error("wrong error message, expected: ", expectedMsg);
done();
}
});
it("should error on invalid template", done => {
str = "{{ a.one }}, {{ a.tw1o }}";
source = {
a: {
one: "foo",
two: 52
}
};
try {
res = templateLiteral(str, source);
console.log(res);
throw new Error("func should error", res);
} catch (e) {
expectedMsg = "{{ a.tw1o }} does not exist in source";
if (e.message !== expectedMsg)
throw new Error("wrong error message, expected: ", expectedMsg);
done();
}
});
});