@@ -123,7 +123,7 @@ def test_shows_teams(
123
123
def test_asks_for_app_name_after_team (
124
124
logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
125
125
) -> None :
126
- steps = [ENTER , ENTER , CTRL_C ]
126
+ steps = [ENTER , ENTER , ENTER , CTRL_C ]
127
127
128
128
respx_mock .get ("/teams/" ).mock (
129
129
return_value = Response (
@@ -151,7 +151,7 @@ def test_asks_for_app_name_after_team(
151
151
def test_creates_app_on_backend (
152
152
logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
153
153
) -> None :
154
- steps = [ENTER , ENTER , * "demo" , ENTER ]
154
+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
155
155
156
156
respx_mock .get ("/teams/" ).mock (
157
157
return_value = Response (
@@ -181,11 +181,54 @@ def test_creates_app_on_backend(
181
181
assert "App created successfully" in result .output
182
182
183
183
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
+
184
227
@pytest .mark .respx (base_url = settings .base_api_url )
185
228
def test_creates_and_uploads_deployment_then_fails (
186
229
logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
187
230
) -> None :
188
- steps = [ENTER , ENTER , * "demo" , ENTER ]
231
+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
189
232
190
233
respx_mock .get ("/teams/" ).mock (
191
234
return_value = Response (
@@ -264,7 +307,7 @@ def test_creates_and_uploads_deployment_then_fails(
264
307
def test_exists_successfully_when_deployment_is_done (
265
308
logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
266
309
) -> None :
267
- steps = [ENTER , ENTER , * "demo" , ENTER ]
310
+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
268
311
269
312
respx_mock .get ("/teams/" ).mock (
270
313
return_value = Response (
@@ -429,7 +472,7 @@ def test_shows_error_when_app_does_not_exist(
429
472
def test_can_skip_waiting (
430
473
logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
431
474
) -> None :
432
- steps = [ENTER , ENTER , * "demo" , ENTER ]
475
+ steps = [ENTER , ENTER , ENTER , * "demo" , ENTER ]
433
476
434
477
respx_mock .get ("/teams/" ).mock (
435
478
return_value = Response (
0 commit comments