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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy