@@ -180,6 +180,9 @@ def test_destinations_cli_list(invoke):
180180 result = invoke (['list' , '--can-write' , 'true' ])
181181 assert result .exit_code == 0
182182
183+ result = invoke (['list' , '--is-default' , 'true' ])
184+ assert result .exit_code == 0
185+
183186 result = invoke (['list' , '--archived' , 'false' ])
184187 assert result .exit_code == 0
185188
@@ -189,6 +192,9 @@ def test_destinations_cli_list(invoke):
189192 result = invoke (['list' , '--can-write' , 'false' ])
190193 assert result .exit_code == 0
191194
195+ result = invoke (['list' , '--is-default' , 'false' ])
196+ assert result .exit_code == 0
197+
192198 result = invoke (['list' , '--archived' , 'false' , '--is-owner' , 'true' ])
193199 assert result .exit_code == 0
194200
@@ -251,3 +257,66 @@ def test_destinations_cli_update(invoke):
251257 '--use-path-style'
252258 ])
253259 assert result .exit_code == 0
260+
261+
262+ @respx .mock
263+ def test_destinations_cli_default_set (invoke ):
264+ url = f"{ TEST_DESTINATIONS_URL } /default"
265+ respx .put (url ).return_value = httpx .Response (HTTPStatus .OK , json = {})
266+
267+ result = invoke (['default' , 'set' , 'fake-dest-id' ])
268+ assert result .exit_code == 0
269+
270+
271+ @respx .mock
272+ def test_destinations_cli_default_set_bad_request (invoke ):
273+ url = f"{ TEST_DESTINATIONS_URL } /default"
274+ respx .put (url ).return_value = httpx .Response (
275+ HTTPStatus .BAD_REQUEST ,
276+ json = {"code" : 400 , "message" : "Bad Request: Invalid destination ID" })
277+
278+ result = invoke (['default' , 'set' , 'invalid-dest-id' ])
279+ assert result .exit_code != 0
280+ assert "Failed to set default destination" in result .output
281+
282+
283+ @respx .mock
284+ def test_destinations_cli_default_get (invoke ):
285+ url = f"{ TEST_DESTINATIONS_URL } /default"
286+ respx .get (url ).return_value = httpx .Response (HTTPStatus .OK , json = {})
287+
288+ result = invoke (['default' , 'get' ])
289+ assert result .exit_code == 0
290+
291+
292+ @respx .mock
293+ def test_destinations_cli_default_get_not_found (invoke ):
294+ url = f"{ TEST_DESTINATIONS_URL } /default"
295+ respx .get (url ).return_value = httpx .Response (
296+ HTTPStatus .NOT_FOUND ,
297+ json = {"code" : 404 , "message" : "No default destination configured" })
298+
299+ result = invoke (['default' , 'get' ])
300+ assert result .exit_code != 0
301+ assert "Failed to get default destination" in result .output
302+
303+
304+ @respx .mock
305+ def test_destinations_cli_default_unset (invoke ):
306+ url = f"{ TEST_DESTINATIONS_URL } /default"
307+ respx .delete (url ).return_value = httpx .Response (HTTPStatus .NO_CONTENT )
308+
309+ result = invoke (['default' , 'unset' ])
310+ assert result .exit_code == 0
311+
312+
313+ @respx .mock
314+ def test_destinations_cli_default_unset_unauthorized (invoke ):
315+ url = f"{ TEST_DESTINATIONS_URL } /default"
316+ respx .delete (url ).return_value = httpx .Response (
317+ HTTPStatus .UNAUTHORIZED ,
318+ json = {"code" : 401 , "message" : "Unauthorized: Insufficient permissions" })
319+
320+ result = invoke (['default' , 'unset' ])
321+ assert result .exit_code != 0
322+ assert "Failed to unset default destination" in result .output
0 commit comments