forked from mholt/json-to-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjson-to-go.test.js
71 lines (66 loc) · 1.76 KB
/
json-to-go.test.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
const jsonToGo = require("./json-to-go");
function quote(str) {
return "'" + str
.replace(/\t/g, "\\t")
.replace(/\n/g, "\\n")
.replace(/'/g, "\\'") + "'"
}
function test() {
const testCases = [
{
input: '{"SourceCode": ""}',
expected:
'type AutoGenerated struct {\n\tSourceCode string `json:"SourceCode"`\n}'
},
{
input: '{"source_code": ""}',
expected:
'type AutoGenerated struct {\n\tSourceCode string `json:"source_code"`\n}'
},
{
input: '{"sourceCode": ""}',
expected:
'type AutoGenerated struct {\n\tSourceCode string `json:"sourceCode"`\n}'
},
{
input: '{"SOURCE_CODE": ""}',
expected:
'type AutoGenerated struct {\n\tSourceCode string `json:"SOURCE_CODE"`\n}'
},
{
input: '{"PublicIP": ""}',
expected:
'type AutoGenerated struct {\n\tPublicIP string `json:"PublicIP"`\n}'
},
{
input: '{"public_ip": ""}',
expected:
'type AutoGenerated struct {\n\tPublicIP string `json:"public_ip"`\n}'
},
{
input: '{"publicIP": ""}',
expected:
'type AutoGenerated struct {\n\tPublicIP string `json:"publicIP"`\n}'
},
{
input: '{"PUBLIC_IP": ""}',
expected:
'type AutoGenerated struct {\n\tPublicIP string `json:"PUBLIC_IP"`\n}'
}
];
for (const testCase of testCases) {
const got = jsonToGo(testCase.input);
if (got.error) {
console.assert(!got.error, `format('${testCase.input}'): ${got.error}`);
} else {
console.assert(
got.go === testCase.expected,
`format('${testCase.input}'): \n\tgot: ${quote(got.go)}\n\twant: ${
quote(testCase.expected)
}`
);
}
}
console.log("done")
}
test();