@@ -47,7 +47,10 @@ def test_shows_a_message_if_app_is_not_configured(logged_in_cli: None) -> None:
4747def test_shows_a_message_if_something_is_wrong (
4848 logged_in_cli : None , respx_mock : respx .MockRouter , configured_app : Path
4949) -> None :
50- respx_mock .post ("/apps/123/environment-variables/" ).mock (return_value = Response (500 ))
50+ respx_mock .post (
51+ "/apps/123/environment-variables/" ,
52+ json = {"name" : "SOME_VAR" , "value" : "secret" , "is_secret" : False },
53+ ).mock (return_value = Response (500 ))
5154
5255 with changing_dir (configured_app ):
5356 result = runner .invoke (app , ["env" , "set" , "SOME_VAR" , "secret" ])
@@ -63,7 +66,10 @@ def test_shows_a_message_if_something_is_wrong(
6366def test_shows_message_when_it_sets (
6467 logged_in_cli : None , respx_mock : respx .MockRouter , configured_app : Path
6568) -> None :
66- respx_mock .post ("/apps/123/environment-variables/" ).mock (return_value = Response (200 ))
69+ respx_mock .post (
70+ "/apps/123/environment-variables/" ,
71+ json = {"name" : "SOME_VAR" , "value" : "secret" , "is_secret" : False },
72+ ).mock (return_value = Response (200 ))
6773
6874 with changing_dir (configured_app ):
6975 result = runner .invoke (app , ["env" , "set" , "SOME_VAR" , "secret" ])
@@ -78,7 +84,10 @@ def test_asks_for_name_and_value(
7884) -> None :
7985 steps = [* "SOME_VAR" , Keys .ENTER , * "secret" , Keys .ENTER ]
8086
81- respx_mock .post ("/apps/123/environment-variables/" ).mock (return_value = Response (200 ))
87+ respx_mock .post (
88+ "/apps/123/environment-variables/" ,
89+ json = {"name" : "SOME_VAR" , "value" : "secret" , "is_secret" : False },
90+ ).mock (return_value = Response (200 ))
8291
8392 with (
8493 changing_dir (configured_app ),
@@ -93,4 +102,45 @@ def test_asks_for_name_and_value(
93102
94103 assert "Environment variable SOME_VAR set" in result .output
95104
105+
106+ @pytest .mark .respx (base_url = settings .base_api_url )
107+ def test_asks_for_name_and_value_for_secret (
108+ logged_in_cli : None , respx_mock : respx .MockRouter , configured_app : Path
109+ ) -> None :
110+ steps = [* "SOME_VAR" , Keys .ENTER , * "secret" , Keys .ENTER ]
111+
112+ respx_mock .post (
113+ "/apps/123/environment-variables/" ,
114+ json = {"name" : "SOME_VAR" , "value" : "secret" , "is_secret" : True },
115+ ).mock (return_value = Response (200 ))
116+
117+ with (
118+ changing_dir (configured_app ),
119+ patch ("rich_toolkit.container.getchar" , side_effect = steps ),
120+ ):
121+ result = runner .invoke (app , ["env" , "set" , "--secret" ])
122+
123+ assert result .exit_code == 0
124+
125+ assert "Enter the name of the secret" in result .output
126+ assert "Enter the secret value" in result .output
127+
128+ assert "Secret environment variable SOME_VAR set" in result .output
129+
96130 assert "*" * 6 in result .output
131+
132+
133+ @pytest .mark .respx (base_url = settings .base_api_url )
134+ def test_sets_secret_flag (
135+ logged_in_cli : None , respx_mock : respx .MockRouter , configured_app : Path
136+ ) -> None :
137+ respx_mock .post (
138+ "/apps/123/environment-variables/" ,
139+ json = {"name" : "SOME_VAR" , "value" : "secret" , "is_secret" : True },
140+ ).mock (return_value = Response (200 ))
141+
142+ with changing_dir (configured_app ):
143+ result = runner .invoke (app , ["env" , "set" , "SOME_VAR" , "secret" , "--secret" ])
144+
145+ assert result .exit_code == 0
146+ assert "Secret environment variable SOME_VAR set" in result .output
0 commit comments