Skip to content
This repository was archived by the owner on Feb 16, 2023. It is now read-only.

Commit a101c91

Browse files
committed
Refactor variable reader tests
1 parent afa6968 commit a101c91

1 file changed

Lines changed: 35 additions & 34 deletions

File tree

internals/secrethub/variable_reader_test.go

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package secrethub
22

33
import (
4+
"bytes"
45
"testing"
56

67
"github.com/secrethub/secrethub-cli/internals/cli/ui"
@@ -118,40 +119,40 @@ func TestPromptVariableReader(t *testing.T) {
118119
reader, err := newVariableReader(osEnv, commandTemplateVars)
119120
assert.OK(t, err)
120121

121-
t.Run("prompt", func(t *testing.T) {
122-
io := ui.NewFakeIO()
123-
io.PromptIn.Reads = []string{"foobar\n"}
124-
reader = newPromptMissingVariableReader(reader, io)
125-
126-
val, err := reader.ReadVariable("test5")
127-
assert.Equal(t, val, "foobar")
128-
assert.Equal(t, err, nil)
129-
})
130-
131-
t.Run("no prompt", func(t *testing.T) {
132-
io := ui.NewFakeIO()
133-
reader = newPromptMissingVariableReader(reader, io)
134-
135-
val, err := reader.ReadVariable("test4")
136-
assert.Equal(t, val, "testD")
137-
assert.Equal(t, err, nil)
138-
})
139-
140-
t.Run("from os env", func(t *testing.T) {
141-
io := ui.NewFakeIO()
142-
reader = newPromptMissingVariableReader(reader, io)
143-
144-
val, err := reader.ReadVariable("test2")
145-
assert.Equal(t, val, "testB")
146-
assert.Equal(t, err, nil)
147-
})
122+
cases := map[string]struct {
123+
promptIn string
124+
varName string
125+
expected string
126+
err error
127+
}{
128+
"prompt": {
129+
promptIn: "foobar",
130+
varName: "test5",
131+
expected: "foobar",
132+
},
133+
"no prompt": {
134+
varName: "test4",
135+
expected: "testD",
136+
},
137+
"from os env": {
138+
varName: "test2",
139+
expected: "testB",
140+
},
141+
"template vars shadow os env": {
142+
varName: "test1",
143+
expected: "testAA",
144+
},
145+
}
148146

149-
t.Run("template vars shadow os env", func(t *testing.T) {
150-
io := ui.NewFakeIO()
151-
reader = newPromptMissingVariableReader(reader, io)
147+
for name, tc := range cases {
148+
t.Run(name, func(t *testing.T) {
149+
io := ui.NewFakeIO()
150+
io.PromptIn.Buffer = bytes.NewBufferString(tc.promptIn)
151+
reader = newPromptMissingVariableReader(reader, io)
152152

153-
val, err := reader.ReadVariable("test1")
154-
assert.Equal(t, val, "testAA")
155-
assert.Equal(t, err, nil)
156-
})
153+
val, err := reader.ReadVariable(tc.varName)
154+
assert.Equal(t, val, tc.expected)
155+
assert.Equal(t, err, tc.err)
156+
})
157+
}
157158
}

0 commit comments

Comments
 (0)