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