|
12 | 12 | $settings = [ |
13 | 13 | 'app_name' => 'test-app', |
14 | 14 | 'namespace' => 'test-app', |
15 | | - 'default_vault' => 'ssm', |
| 15 | + 'default_vault' => 'test', |
16 | 16 | 'stages' => ['testing', 'production'], |
17 | 17 | 'created_at' => date('c'), |
18 | 18 | 'version' => '1.0' |
19 | 19 | ]; |
20 | 20 |
|
21 | 21 | file_put_contents('.keep/settings.json', json_encode($settings, JSON_PRETTY_PRINT)); |
22 | 22 |
|
23 | | - // Create SSM vault configuration for testing |
| 23 | + // Create test vault configuration for testing (never hits AWS) |
24 | 24 | $vaultConfig = [ |
25 | | - 'driver' => 'ssm', |
26 | | - 'name' => 'Test SSM Vault', |
27 | | - 'region' => 'us-east-1', |
28 | | - 'prefix' => 'test' |
| 25 | + 'driver' => 'test', |
| 26 | + 'name' => 'Test Vault', |
| 27 | + 'namespace' => 'test-app' |
29 | 28 | ]; |
30 | 29 |
|
31 | | - file_put_contents('.keep/vaults/ssm.json', json_encode($vaultConfig, JSON_PRETTY_PRINT)); |
| 30 | + file_put_contents('.keep/vaults/test.json', json_encode($vaultConfig, JSON_PRETTY_PRINT)); |
32 | 31 | }); |
33 | 32 |
|
34 | 33 | describe('command structure and signature', function () { |
35 | 34 | it('accepts force flag option', function () { |
36 | 35 | $commandTester = runCommand('delete', [ |
37 | 36 | 'key' => 'TEST_KEY', |
38 | | - '--vault' => 'ssm', |
| 37 | + '--vault' => 'test', |
39 | 38 | '--stage' => 'testing', |
40 | 39 | '--force' => true |
41 | 40 | ]); |
|
49 | 48 | it('validates key argument is provided', function () { |
50 | 49 | // Try to run delete command without key |
51 | 50 | $commandTester = runCommand('delete', [ |
52 | | - '--vault' => 'ssm', |
| 51 | + '--vault' => 'test', |
53 | 52 | '--stage' => 'testing', |
54 | 53 | '--force' => true |
55 | 54 | ]); |
|
65 | 64 | it('accepts vault and stage parameters', function () { |
66 | 65 | $commandTester = runCommand('delete', [ |
67 | 66 | 'key' => 'TEST_KEY', |
68 | | - '--vault' => 'ssm', |
| 67 | + '--vault' => 'test', |
69 | 68 | '--stage' => 'testing', |
70 | 69 | '--force' => true |
71 | 70 | ]); |
|
81 | 80 | it('handles non-existent secrets gracefully', function () { |
82 | 81 | $commandTester = runCommand('delete', [ |
83 | 82 | 'key' => 'NONEXISTENT_KEY', |
84 | | - '--vault' => 'ssm', |
| 83 | + '--vault' => 'test', |
85 | 84 | '--stage' => 'testing', |
86 | 85 | '--force' => true |
87 | 86 | ]); |
|
95 | 94 | it('handles vault connection issues gracefully', function () { |
96 | 95 | $commandTester = runCommand('delete', [ |
97 | 96 | 'key' => 'CONNECTION_TEST_KEY', |
98 | | - '--vault' => 'ssm', |
| 97 | + '--vault' => 'test', |
99 | 98 | '--stage' => 'testing', |
100 | 99 | '--force' => true |
101 | 100 | ]); |
|
110 | 109 | it('validates stage parameters exist in configuration', function () { |
111 | 110 | $commandTester = runCommand('delete', [ |
112 | 111 | 'key' => 'STAGE_TEST_KEY', |
113 | | - '--vault' => 'ssm', |
| 112 | + '--vault' => 'test', |
114 | 113 | '--stage' => 'testing', // Valid stage from our config |
115 | 114 | '--force' => true |
116 | 115 | ]); |
|
126 | 125 | it('accepts force flag without prompting', function () { |
127 | 126 | $commandTester = runCommand('delete', [ |
128 | 127 | 'key' => 'FORCE_TEST_KEY', |
129 | | - '--vault' => 'ssm', |
| 128 | + '--vault' => 'test', |
130 | 129 | '--stage' => 'testing', |
131 | 130 | '--force' => true |
132 | 131 | ]); |
|
140 | 139 | it('shows appropriate deletion message format', function () { |
141 | 140 | $commandTester = runCommand('delete', [ |
142 | 141 | 'key' => 'MESSAGE_TEST_KEY', |
143 | | - '--vault' => 'ssm', |
| 142 | + '--vault' => 'test', |
144 | 143 | '--stage' => 'testing', |
145 | 144 | '--force' => true |
146 | 145 | ]); |
|
156 | 155 | it('uses specified vault parameter', function () { |
157 | 156 | $commandTester = runCommand('delete', [ |
158 | 157 | 'key' => 'VAULT_TEST_KEY', |
159 | | - '--vault' => 'ssm', |
| 158 | + '--vault' => 'test', |
160 | 159 | '--stage' => 'testing', |
161 | 160 | '--force' => true |
162 | 161 | ]); |
|
170 | 169 | it('uses specified stage parameter', function () { |
171 | 170 | $commandTester = runCommand('delete', [ |
172 | 171 | 'key' => 'STAGE_TEST_KEY', |
173 | | - '--vault' => 'ssm', |
| 172 | + '--vault' => 'test', |
174 | 173 | '--stage' => 'testing', |
175 | 174 | '--force' => true |
176 | 175 | ]); |
|
184 | 183 | it('handles production stage parameter', function () { |
185 | 184 | $commandTester = runCommand('delete', [ |
186 | 185 | 'key' => 'PROD_TEST_KEY', |
187 | | - '--vault' => 'ssm', |
| 186 | + '--vault' => 'test', |
188 | 187 | '--stage' => 'production', // Valid stage from our config |
189 | 188 | '--force' => true |
190 | 189 | ]); |
|
200 | 199 | it('shows secret details appropriately', function () { |
201 | 200 | $commandTester = runCommand('delete', [ |
202 | 201 | 'key' => 'DETAILS_TEST_KEY', |
203 | | - '--vault' => 'ssm', |
| 202 | + '--vault' => 'test', |
204 | 203 | '--stage' => 'testing', |
205 | 204 | '--force' => true |
206 | 205 | ]); |
|
214 | 213 | it('handles table display formatting', function () { |
215 | 214 | $commandTester = runCommand('delete', [ |
216 | 215 | 'key' => 'TABLE_TEST_KEY', |
217 | | - '--vault' => 'ssm', |
| 216 | + '--vault' => 'test', |
218 | 217 | '--stage' => 'testing', |
219 | 218 | '--force' => true |
220 | 219 | ]); |
|
230 | 229 | it('handles special characters in key names', function () { |
231 | 230 | $commandTester = runCommand('delete', [ |
232 | 231 | 'key' => 'KEY_WITH_SPECIAL-CHARS.123', |
233 | | - '--vault' => 'ssm', |
| 232 | + '--vault' => 'test', |
234 | 233 | '--stage' => 'testing', |
235 | 234 | '--force' => true |
236 | 235 | ]); |
|
245 | 244 | // Test command without --force to test confirmation logic path |
246 | 245 | $commandTester = runCommand('delete', [ |
247 | 246 | 'key' => 'CANCEL_TEST_KEY', |
248 | | - '--vault' => 'ssm', |
| 247 | + '--vault' => 'test', |
249 | 248 | '--stage' => 'testing' |
250 | 249 | // Note: no --force flag, so would normally prompt |
251 | 250 | ]); |
|
259 | 258 | it('handles context creation appropriately', function () { |
260 | 259 | $commandTester = runCommand('delete', [ |
261 | 260 | 'key' => 'CONTEXT_TEST_KEY', |
262 | | - '--vault' => 'ssm', |
| 261 | + '--vault' => 'test', |
263 | 262 | '--stage' => 'testing', |
264 | 263 | '--force' => true |
265 | 264 | ]); |
|
275 | 274 | it('handles secret retrieval for verification', function () { |
276 | 275 | $commandTester = runCommand('delete', [ |
277 | 276 | 'key' => 'VERIFY_TEST_KEY', |
278 | | - '--vault' => 'ssm', |
| 277 | + '--vault' => 'test', |
279 | 278 | '--stage' => 'testing', |
280 | 279 | '--force' => true |
281 | 280 | ]); |
|
288 | 287 | it('provides appropriate completion status', function () { |
289 | 288 | $commandTester = runCommand('delete', [ |
290 | 289 | 'key' => 'COMPLETION_TEST_KEY', |
291 | | - '--vault' => 'ssm', |
| 290 | + '--vault' => 'test', |
292 | 291 | '--stage' => 'testing', |
293 | 292 | '--force' => true |
294 | 293 | ]); |
|
0 commit comments