@@ -123,7 +123,7 @@ def test_shows_teams(
123123def test_asks_for_app_name_after_team (
124124 logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
125125) -> None :
126- steps = [ENTER , ENTER , CTRL_C ]
126+ steps = [ENTER , ENTER , ENTER , CTRL_C ]
127127
128128 respx_mock .get ("/teams/" ).mock (
129129 return_value = Response (
@@ -151,7 +151,7 @@ def test_asks_for_app_name_after_team(
151151def test_creates_app_on_backend (
152152 logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
153153) -> None :
154- steps = [ENTER , ENTER , * "demo" , ENTER ]
154+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
155155
156156 respx_mock .get ("/teams/" ).mock (
157157 return_value = Response (
@@ -181,11 +181,54 @@ def test_creates_app_on_backend(
181181 assert "App created successfully" in result .output
182182
183183
184+ @pytest .mark .respx (base_url = settings .base_api_url )
185+ def test_uses_existing_app (
186+ logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
187+ ) -> None :
188+ steps = [ENTER , ENTER , RIGHT_ARROW , ENTER , * "demo" , ENTER ]
189+
190+ respx_mock .get ("/teams/" ).mock (
191+ return_value = Response (
192+ 200 ,
193+ json = {
194+ "data" : [
195+ {"name" : "team1" , "slug" : "team1" , "id" : "123" },
196+ ]
197+ },
198+ )
199+ )
200+
201+ respx_mock .get ("/apps/" , params = {"team_slug" : "team1" }).mock (
202+ return_value = Response (
203+ 200 ,
204+ json = {
205+ "data" : [
206+ {
207+ "name" : "App called demo" ,
208+ "slug" : "app-called-demo" ,
209+ "id" : "1234" ,
210+ },
211+ ]
212+ },
213+ )
214+ )
215+
216+ with changing_dir (tmp_path ), patch ("click.getchar" ) as mock_getchar :
217+ mock_getchar .side_effect = steps
218+
219+ result = runner .invoke (app , ["deploy" ])
220+
221+ assert result .exit_code == 1
222+
223+ assert "Select the app you want to deploy to:" in result .output
224+ assert "app-called-demo" in result .output
225+
226+
184227@pytest .mark .respx (base_url = settings .base_api_url )
185228def test_creates_and_uploads_deployment_then_fails (
186229 logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
187230) -> None :
188- steps = [ENTER , ENTER , * "demo" , ENTER ]
231+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
189232
190233 respx_mock .get ("/teams/" ).mock (
191234 return_value = Response (
@@ -264,7 +307,7 @@ def test_creates_and_uploads_deployment_then_fails(
264307def test_exists_successfully_when_deployment_is_done (
265308 logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
266309) -> None :
267- steps = [ENTER , ENTER , * "demo" , ENTER ]
310+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
268311
269312 respx_mock .get ("/teams/" ).mock (
270313 return_value = Response (
@@ -429,7 +472,7 @@ def test_shows_error_when_app_does_not_exist(
429472def test_can_skip_waiting (
430473 logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
431474) -> None :
432- steps = [ENTER , ENTER , * "demo" , ENTER ]
475+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
433476
434477 respx_mock .get ("/teams/" ).mock (
435478 return_value = Response (
0 commit comments