Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit d4611c0

Browse files
committed
fixup! fixup! fixup! Add more secret creation input paths
1 parent 0649151 commit d4611c0

File tree

3 files changed

+101
-86
lines changed

3 files changed

+101
-86
lines changed

ci/integration/integration_test.go

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ package integration
33
import (
44
"context"
55
"encoding/json"
6-
"fmt"
76
"math/rand"
8-
"regexp"
97
"testing"
108
"time"
119

@@ -89,88 +87,6 @@ func TestCoderCLI(t *testing.T) {
8987
)
9088
}
9189

92-
func TestSecrets(t *testing.T) {
93-
t.Parallel()
94-
ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5)
95-
defer cancel()
96-
97-
c, err := tcli.NewContainerRunner(ctx, &tcli.ContainerConfig{
98-
Image: "codercom/enterprise-dev",
99-
Name: "secrets-cli-tests",
100-
BindMounts: map[string]string{
101-
binpath: "/bin/coder",
102-
},
103-
})
104-
assert.Success(t, "new run container", err)
105-
defer c.Close()
106-
107-
headlessLogin(ctx, t, c)
108-
109-
c.Run(ctx, "coder secrets ls").Assert(t,
110-
tcli.Success(),
111-
)
112-
113-
name, value := randString(8), randString(8)
114-
115-
c.Run(ctx, "coder secrets create").Assert(t,
116-
tcli.Error(),
117-
tcli.StdoutEmpty(),
118-
)
119-
120-
// this tests the "Value:" prompt fallback
121-
c.Run(ctx, fmt.Sprintf("echo %s | coder secrets create %s", value, name)).Assert(t,
122-
tcli.Success(),
123-
tcli.StderrEmpty(),
124-
)
125-
126-
c.Run(ctx, "coder secrets ls").Assert(t,
127-
tcli.Success(),
128-
tcli.StderrEmpty(),
129-
tcli.StdoutMatches("Value"),
130-
tcli.StdoutMatches(regexp.QuoteMeta(name)),
131-
)
132-
133-
c.Run(ctx, "coder secrets view "+name).Assert(t,
134-
tcli.Success(),
135-
tcli.StderrEmpty(),
136-
tcli.StdoutMatches(regexp.QuoteMeta(value)),
137-
)
138-
139-
c.Run(ctx, "coder secrets rm").Assert(t,
140-
tcli.Error(),
141-
)
142-
c.Run(ctx, "coder secrets rm "+name).Assert(t,
143-
tcli.Success(),
144-
)
145-
c.Run(ctx, "coder secrets view "+name).Assert(t,
146-
tcli.Error(),
147-
tcli.StdoutEmpty(),
148-
)
149-
150-
name, value = randString(8), randString(8)
151-
c.Run(ctx, fmt.Sprintf("coder secrets create %s --from-literal %s", name, value)).Assert(t,
152-
tcli.Success(),
153-
tcli.StderrEmpty(),
154-
)
155-
156-
c.Run(ctx, "coder secrets view "+name).Assert(t,
157-
tcli.Success(),
158-
tcli.StdoutMatches(regexp.QuoteMeta(value)),
159-
)
160-
161-
name, value = randString(8), randString(8)
162-
c.Run(ctx, fmt.Sprintf("echo %s > ~/secret.json", value)).Assert(t,
163-
tcli.Success(),
164-
)
165-
c.Run(ctx, fmt.Sprintf("coder secrets create %s --from-file ~/secret.json", name)).Assert(t,
166-
tcli.Success(),
167-
)
168-
c.Run(ctx, "coder secrets view "+name).Assert(t,
169-
tcli.Success(),
170-
tcli.StdoutMatches(regexp.QuoteMeta(value)),
171-
)
172-
}
173-
17490
func stdoutUnmarshalsJSON(target interface{}) tcli.Assertion {
17591
return func(t *testing.T, r *tcli.CommandResult) {
17692
slog.Helper()

ci/integration/secrets_test.go

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package integration
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"regexp"
7+
"testing"
8+
"time"
9+
10+
"cdr.dev/coder-cli/ci/tcli"
11+
"cdr.dev/slog/sloggers/slogtest/assert"
12+
)
13+
14+
func TestSecrets(t *testing.T) {
15+
t.Parallel()
16+
ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5)
17+
defer cancel()
18+
19+
c, err := tcli.NewContainerRunner(ctx, &tcli.ContainerConfig{
20+
Image: "codercom/enterprise-dev",
21+
Name: "secrets-cli-tests",
22+
BindMounts: map[string]string{
23+
binpath: "/bin/coder",
24+
},
25+
})
26+
assert.Success(t, "new run container", err)
27+
defer c.Close()
28+
29+
headlessLogin(ctx, t, c)
30+
31+
c.Run(ctx, "coder secrets ls").Assert(t,
32+
tcli.Success(),
33+
)
34+
35+
name, value := randString(8), randString(8)
36+
37+
c.Run(ctx, "coder secrets create").Assert(t,
38+
tcli.Error(),
39+
tcli.StdoutEmpty(),
40+
)
41+
42+
// this tests the "Value:" prompt fallback
43+
c.Run(ctx, fmt.Sprintf("echo %s | coder secrets create %s", value, name)).Assert(t,
44+
tcli.Success(),
45+
tcli.StderrEmpty(),
46+
)
47+
48+
c.Run(ctx, "coder secrets ls").Assert(t,
49+
tcli.Success(),
50+
tcli.StderrEmpty(),
51+
tcli.StdoutMatches("Value"),
52+
tcli.StdoutMatches(regexp.QuoteMeta(name)),
53+
)
54+
55+
c.Run(ctx, "coder secrets view "+name).Assert(t,
56+
tcli.Success(),
57+
tcli.StderrEmpty(),
58+
tcli.StdoutMatches(regexp.QuoteMeta(value)),
59+
)
60+
61+
c.Run(ctx, "coder secrets rm").Assert(t,
62+
tcli.Error(),
63+
)
64+
c.Run(ctx, "coder secrets rm "+name).Assert(t,
65+
tcli.Success(),
66+
)
67+
c.Run(ctx, "coder secrets view "+name).Assert(t,
68+
tcli.Error(),
69+
tcli.StdoutEmpty(),
70+
)
71+
72+
name, value = randString(8), randString(8)
73+
74+
c.Run(ctx, fmt.Sprintf("coder secrets create %s --from-literal %s", name, value)).Assert(t,
75+
tcli.Success(),
76+
tcli.StderrEmpty(),
77+
)
78+
79+
c.Run(ctx, "coder secrets view "+name).Assert(t,
80+
tcli.Success(),
81+
tcli.StdoutMatches(regexp.QuoteMeta(value)),
82+
)
83+
84+
name, value = randString(8), randString(8)
85+
c.Run(ctx, fmt.Sprintf("echo %s > ~/secret.json", value)).Assert(t,
86+
tcli.Success(),
87+
)
88+
c.Run(ctx, fmt.Sprintf("coder secrets create %s --from-literal %s --from-file ~/secret.json", name, value)).Assert(t,
89+
tcli.Error(),
90+
)
91+
c.Run(ctx, fmt.Sprintf("coder secrets create %s --from-file ~/secret.json", name)).Assert(t,
92+
tcli.Success(),
93+
)
94+
//
95+
c.Run(ctx, "coder secrets view "+name).Assert(t,
96+
tcli.Success(),
97+
tcli.StdoutMatches(regexp.QuoteMeta(value)),
98+
)
99+
}

cmd/coder/secrets.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func (cmd *createSecretCmd) Run(fl *pflag.FlagSet) {
149149
value = cmd.fromLiteral
150150
} else if cmd.fromFile != "" {
151151
contents, err := ioutil.ReadFile(cmd.fromFile)
152-
requireSuccess(err, "read file: %v", err)
152+
requireSuccess(err, "failed to read file: %v", err)
153153
value = string(contents)
154154
} else {
155155
prompt := promptui.Prompt{
@@ -163,7 +163,7 @@ func (cmd *createSecretCmd) Run(fl *pflag.FlagSet) {
163163
},
164164
}
165165
value, err = prompt.Run()
166-
requireSuccess(err, "prompt for value: %v", err)
166+
requireSuccess(err, "failed to prompt for value: %v", err)
167167
}
168168

169169
err = client.InsertSecret(entclient.InsertSecretReq{

0 commit comments

Comments
 (0)