Skip to content

Commit 06a0466

Browse files
committed
feat(secrets): add venom test
1 parent 78756bf commit 06a0466

File tree

2 files changed

+263
-6
lines changed

2 files changed

+263
-6
lines changed

cmd/okms/secretsV2/version.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ func secretVersionGetCmd() *cobra.Command {
3737
includeData bool
3838
)
3939
cmd := &cobra.Command{
40-
Use: "get PATH --version VERSION ",
40+
Use: "get PATH --version=VERSION ",
4141
Short: "Retrieve a secret version",
42-
Args: cobra.MinimumNArgs(2),
42+
Args: cobra.MinimumNArgs(1),
4343
Run: func(cmd *cobra.Command, args []string) {
44-
4544
var v uint32
4645
if cmd.Flag("version").Changed {
4746
v = version
@@ -91,13 +90,11 @@ func secretVersionListCmd() *cobra.Command {
9190
Short: "Retrieve a secret version",
9291
Args: cobra.MinimumNArgs(2),
9392
Run: func(cmd *cobra.Command, args []string) {
94-
9593
resp := exit.OnErr2(common.Client().ListSecretVersionV2(cmd.Context(), args[0]))
9694
if cmd.Flag("output").Value.String() == string(flagsmgmt.JSON_OUTPUT_FORMAT) {
9795
output.JsonPrint(resp)
9896
} else {
9997
for _, version := range *resp {
100-
10198
createdAt := version.CreatedAt
10299
deactivatedAt := utils.DerefOrDefault(version.DeactivatedAt)
103100
id := version.Id
@@ -140,7 +137,7 @@ func secretVersionPutCmd() *cobra.Command {
140137
cmd := &cobra.Command{
141138
Use: "update PATH --version VERSION --state STATE",
142139
Short: "Update a secret version",
143-
Args: cobra.MinimumNArgs(4),
140+
Args: cobra.MinimumNArgs(1),
144141
Run: func(cmd *cobra.Command, args []string) {
145142
if !cmd.Flag("version").Changed {
146143
fmt.Fprintln(os.Stderr, "Missing flag version")

tests/secrets.yaml

Lines changed: 260 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,260 @@
1+
name: okms-cli secrets test suite
2+
description: Test the OKMS secrets subcommand
3+
testcases:
4+
- name: random-string
5+
steps:
6+
- script: echo {{randAlpha 8 | lower}}
7+
info: response time is {{.result.timeseconds}}
8+
vars:
9+
content:
10+
from: result.systemout
11+
12+
13+
- name: Create Secret
14+
steps:
15+
- name: Create a Secret
16+
type: okms-cmd
17+
args: secret create --cas-required=true --deactivate-version-after="1d" --max-versions=10 {{.random-string.content}} data=data
18+
assertions:
19+
- result.code ShouldEqual 0
20+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
21+
- result.systemoutjson.metadata.current_version ShouldEqual '1'
22+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
23+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
24+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
25+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
26+
27+
28+
- name: Create an existing Secret
29+
steps:
30+
- name: Create an existing Secret
31+
type: okms-cmd
32+
args: secret create {{.random-string.content}} data=data
33+
assertions:
34+
- result.code ShouldEqual 1
35+
36+
- name: Get Secret
37+
steps:
38+
- name: Get a Secret
39+
type: okms-cmd
40+
args: secret get {{.random-string.content}}
41+
assertions:
42+
- result.code ShouldEqual 0
43+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
44+
- result.systemoutjson.metadata.current_version ShouldEqual '1'
45+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
46+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
47+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
48+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
49+
- result.systemoutjson.version.created_at ShouldNotEqual ""
50+
- result.systemoutjson.version.data ShouldContainKey "data"
51+
- result.systemoutjson.version.data.data ShouldEqual "data"
52+
- result.systemoutjson.version.id ShouldEqual "1"
53+
54+
- name: Get Secret without data
55+
steps:
56+
- name: Get a Secret without data
57+
type: okms-cmd
58+
args: secret get {{.random-string.content}} --include-data=false
59+
assertions:
60+
- result.code ShouldEqual 0
61+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
62+
- result.systemoutjson.metadata.current_version ShouldEqual '1'
63+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
64+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
65+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
66+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
67+
- result.systemoutjson.version.created_at ShouldNotEqual ""
68+
- result.systemoutjson.version.data ShouldEqual ""
69+
70+
- name: Update the secret
71+
steps:
72+
- name: Update the secret
73+
type: okms-cmd
74+
args: secret update {{.random-string.content}} --cas=1 data=new_data
75+
assertions:
76+
- result.code ShouldEqual 0
77+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
78+
- result.systemoutjson.metadata.current_version ShouldEqual '2'
79+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
80+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
81+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
82+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
83+
- result.systemoutjson.version.created_at ShouldNotEqual ""
84+
- result.systemoutjson.version.data ShouldEqual ""
85+
86+
- name: Get Secret
87+
steps:
88+
- name: Get a Secret
89+
type: okms-cmd
90+
args: secret get {{.random-string.content}}
91+
assertions:
92+
- result.code ShouldEqual 0
93+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
94+
- result.systemoutjson.metadata.current_version ShouldEqual '1'
95+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
96+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
97+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
98+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
99+
- result.systemoutjson.version.created_at ShouldNotEqual ""
100+
- result.systemoutjson.version.data ShouldContainKey "data"
101+
- result.systemoutjson.version.data.data ShouldEqual "new_data"
102+
- result.systemoutjson.version.id ShouldEqual "1"
103+
104+
- name: Create new version
105+
steps:
106+
- name: Update the secret and its metadata
107+
type: okms-cmd
108+
# We change cas_required and expect the result to be effective immediatly, so cas should not be required fot this
109+
args: secret version create {{.random-string.content}} --cas=2 data=new_data_again
110+
assertions:
111+
- result.code ShouldEqual 0
112+
- result.systemoutjson.metadata.cas_required ShouldEqual "false"
113+
- result.systemoutjson.metadata.current_version ShouldEqual '3'
114+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
115+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
116+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
117+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
118+
- result.systemoutjson.version.created_at ShouldNotEqual ""
119+
120+
- name: Get Secret
121+
steps:
122+
- name: Get a Secret
123+
type: okms-cmd
124+
args: secret get {{.random-string.content}}
125+
assertions:
126+
- result.code ShouldEqual 0
127+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
128+
- result.systemoutjson.metadata.current_version ShouldEqual '3'
129+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
130+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
131+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
132+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
133+
- result.systemoutjson.version.created_at ShouldNotEqual ""
134+
- result.systemoutjson.version.data ShouldContainKey "data"
135+
- result.systemoutjson.version.data.data ShouldEqual "new_data_again"
136+
- result.systemoutjson.version.id ShouldEqual "3"
137+
138+
- name: Get Secret Version
139+
steps:
140+
- name: Get a Secret
141+
type: okms-cmd
142+
args: secret version get {{.random-string.content}} --version=2
143+
assertions:
144+
- result.code ShouldEqual 0
145+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
146+
- result.systemoutjson.metadata.current_version ShouldEqual '3'
147+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
148+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
149+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
150+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
151+
- result.systemoutjson.version.created_at ShouldNotEqual ""
152+
- result.systemoutjson.version.data ShouldContainKey "data"
153+
- result.systemoutjson.version.data.data ShouldEqual "new_data"
154+
- result.systemoutjson.version.id ShouldEqual "2"
155+
156+
- name: Get Secret
157+
steps:
158+
- name: Get a Secret
159+
type: okms-cmd
160+
args: secret get {{.random-string.content}} --version=2
161+
assertions:
162+
- result.code ShouldEqual 0
163+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
164+
- result.systemoutjson.metadata.current_version ShouldEqual '3'
165+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
166+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
167+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
168+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
169+
- result.systemoutjson.version.created_at ShouldNotEqual ""
170+
- result.systemoutjson.version.data ShouldContainKey "data"
171+
- result.systemoutjson.version.data.data ShouldEqual "new_data"
172+
- result.systemoutjson.version.id ShouldEqual "2"
173+
174+
175+
- name: Update the secret's version state
176+
steps:
177+
- name: Update the secret's version state
178+
type: okms-cmd
179+
# We change cas_required and expect the result to be effective immediatly, so cas should not be required fot this
180+
args: secret version update {{.random-string.content}} --state activated
181+
assertions:
182+
- result.code ShouldEqual 1
183+
184+
- name: Update the secret's version state
185+
steps:
186+
- name: Update the secret's version state
187+
type: okms-cmd
188+
# We change cas_required and expect the result to be effective immediatly, so cas should not be required fot this
189+
args: secret version update {{.random-string.content}} --state deactivated --version=3
190+
assertions:
191+
- result.code ShouldEqual 0
192+
- result.systemoutjson.created_at ShouldNotEqual ""
193+
- result.systemoutjson.deactivated_at ShouldNotEqual ""
194+
- result.systemoutjson.data ShouldEqual ""
195+
- result.systemoutjson.id ShouldEqual "3"
196+
- result.systemoutjson.version.id ShouldEqual "3"
197+
198+
- name: Get Secret
199+
steps:
200+
- name: Get a Secret
201+
type: okms-cmd
202+
args: secret get {{.random-string.content}}
203+
assertions:
204+
- result.code ShouldEqual 0
205+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
206+
- result.systemoutjson.metadata.current_version ShouldEqual '3'
207+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
208+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
209+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
210+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
211+
- result.systemoutjson.version.created_at ShouldNotEqual ""
212+
- result.systemoutjson.version.data ShouldContainKey "data"
213+
- result.systemoutjson.version.data.data ShouldEqual "yet_new_data"
214+
- result.systemoutjson.version.id ShouldEqual "3"
215+
216+
217+
- name: Update the secret and metadata
218+
steps:
219+
- name: Update the secret and its metadata
220+
type: okms-cmd
221+
# We change cas_required and expect the result to be effective immediatly, so cas should not be required fot this
222+
args: secret update {{.random-string.content}} --cas-required=false data=yet_new_data
223+
assertions:
224+
- result.code ShouldEqual 0
225+
- result.systemoutjson.metadata.cas_required ShouldEqual "false"
226+
- result.systemoutjson.metadata.current_version ShouldEqual '4'
227+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
228+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
229+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
230+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
231+
- result.systemoutjson.version.created_at ShouldNotEqual ""
232+
233+
- name: Get Secret
234+
steps:
235+
- name: Get a Secret
236+
type: okms-cmd
237+
args: secret get {{.random-string.content}}
238+
assertions:
239+
- result.code ShouldEqual 0
240+
- result.systemoutjson.metadata.cas_required ShouldEqual "true"
241+
- result.systemoutjson.metadata.current_version ShouldEqual '4'
242+
- result.systemoutjson.metadata.oldest_version ShouldEqual '0'
243+
- result.systemoutjson.metadata.deactivate_version_after ShouldEqual "1d"
244+
- result.systemoutjson.metadata.max_versions ShouldEqual "10"
245+
- result.systemoutjson.metadata.updated_at ShouldNotEqual ""
246+
- result.systemoutjson.version.created_at ShouldNotEqual ""
247+
- result.systemoutjson.version.data ShouldContainKey "data"
248+
- result.systemoutjson.version.data.data ShouldEqual "yet_new_data"
249+
- result.systemoutjson.version.id ShouldEqual "4"
250+
251+
252+
- name: Delete Secret
253+
steps:
254+
- name: Delete a Secret
255+
type: okms-cmd
256+
args: secret delete {{.random-string.content}}
257+
assertions:
258+
- result.code ShouldEqual 0
259+
260+

0 commit comments

Comments
 (0)