Skip to content
This repository was archived by the owner on Nov 17, 2021. It is now read-only.

Commit 5da0ffd

Browse files
author
Steve Harris
committed
Test use of extvar and TLA importing
1 parent 66d4ca3 commit 5da0ffd

File tree

6 files changed

+73
-2
lines changed

6 files changed

+73
-2
lines changed

cmd/show_test.go

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func TestShow(t *testing.T) {
7272
for format, parser := range formats {
7373
expected, err := parser(expected)
7474
if err != nil {
75-
t.Errorf("error parsing *expected* value: %s", err)
75+
t.Fatalf("error parsing *expected* value: %v", err)
7676
}
7777

7878
os.Setenv("anVar", "aVal2")
@@ -90,9 +90,54 @@ func TestShow(t *testing.T) {
9090
t.Log("output is", output)
9191
actual, err := parser(output)
9292
if err != nil {
93-
t.Errorf("error parsing output of format %s: %s", format, err)
93+
t.Errorf("error parsing output of format %s: %v", format, err)
9494
} else if !reflect.DeepEqual(expected, actual) {
9595
t.Errorf("format %s expected != actual: %s != %s", format, expected, actual)
9696
}
9797
}
9898
}
99+
100+
func TestShowUsingExtVarFiles(t *testing.T) {
101+
expectedText := `
102+
{
103+
"apiVersion": "v1",
104+
"kind": "ConfigMap",
105+
"metadata": {
106+
"name": "sink"
107+
},
108+
"data": {
109+
"input": {
110+
"greeting": "Hello!",
111+
"helper": true,
112+
"top": true
113+
},
114+
"var": "I'm a var!"
115+
}
116+
}
117+
`
118+
var expected interface{}
119+
if err := json.Unmarshal([]byte(expectedText), &expected); err != nil {
120+
t.Fatalf("error parsing *expected* value: %v", err)
121+
}
122+
123+
if err := os.Chdir("../testdata/extvars/feed"); err != nil {
124+
t.Fatalf("failed to change to target directory: %v", err)
125+
}
126+
127+
output := cmdOutput(t, []string{"show",
128+
"top.jsonnet",
129+
"-o", "json",
130+
"--tla-code-file", "input=input.jsonnet",
131+
"--tla-code-file", "sink=sink.jsonnet",
132+
"--ext-str-file", "filevar=var.txt",
133+
})
134+
135+
t.Log("output is", output)
136+
var actual interface{}
137+
err := json.Unmarshal([]byte(output), &actual)
138+
if err != nil {
139+
t.Errorf("error parsing output: %v", err)
140+
} else if !reflect.DeepEqual(expected, actual) {
141+
t.Errorf("expected != actual: %s != %s", expected, actual)
142+
}
143+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
local helper = import '../helper.jsonnet';
2+
3+
{
4+
greeting: 'Hello!',
5+
} + helper

testdata/extvars/feed/sink.jsonnet

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function(input)
2+
assert input.top;
3+
{
4+
apiVersion: 'v1',
5+
kind: 'ConfigMap',
6+
metadata: {
7+
name: 'sink',
8+
},
9+
data: {
10+
input: input,
11+
var: std.extVar('filevar'),
12+
},
13+
}

testdata/extvars/feed/top.jsonnet

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
function(input, sink)
2+
sink(input {
3+
top: true,
4+
})

testdata/extvars/feed/var.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
I'm a var!

testdata/extvars/helper.jsonnet

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
helper: true,
3+
}

0 commit comments

Comments
 (0)