@@ -235,3 +235,66 @@ def test_type_not_enum(client, dbsession, db_category):
235235 }
236236 res = client .post (f"/category/{ db_category .id } /button" , data = json .dumps (body ))
237237 assert res .status_code == status .HTTP_422_UNPROCESSABLE_ENTITY
238+
239+
240+ def test_post_hidden_success (client , dbsession , db_category ):
241+ body = {"icon" : "qq" , "name" : "new" , "link" : "google.com" , "type" : "inapp" , "is_hidden" : True }
242+ res = client .post (f"/category/{ db_category .id } /button" , data = json .dumps (body ))
243+ assert res .status_code == status .HTTP_200_OK
244+ res_body = res .json ()
245+ assert res_body ["icon" ] == body ["icon" ]
246+ assert res_body ["order" ] == 1
247+ assert res_body ["name" ] == body ["name" ]
248+ assert res_body ["link" ] == body ["link" ]
249+ assert res_body ["type" ] == body ["type" ]
250+ db_button_created : Button = dbsession .query (Button ).filter (Button .id == res_body ["id" ]).one_or_none ()
251+ assert db_button_created
252+ assert db_button_created .icon == body ["icon" ]
253+ assert db_button_created .name == body ["name" ]
254+ assert db_button_created .category == db_category
255+ assert db_button_created .link == body ["link" ]
256+ assert db_button_created .type == body ["type" ]
257+ assert db_button_created .order == 1
258+ assert db_button_created .is_hidden == True
259+ dbsession .delete (db_button_created )
260+ dbsession .commit ()
261+
262+
263+ def test_get_hidden_by_id_success (client , dbsession , db_button , db_category ):
264+ db_button .is_hidden = True
265+ dbsession .commit ()
266+ res = client .get (f"/category/{ db_category .id } /button/{ db_button .id } " )
267+ assert res .status_code == status .HTTP_200_OK
268+ res_body = res .json ()
269+ assert res_body ['icon' ] == db_button .icon
270+ assert res_body ['name' ] == db_button .name
271+ assert res_body ['order' ] == db_button .order
272+ assert res_body ['link' ] is None
273+ assert res_body ['type' ] == db_button .type
274+ assert res_body ['view' ] == "hidden"
275+
276+
277+ def test_patch_to_hide_success (client , db_button , db_category ):
278+ body = {"is_hidden" : True }
279+ res = client .patch (f"/category/{ db_category .id } /button/{ db_button .id } " , data = json .dumps (body ))
280+ assert res .status_code == status .HTTP_200_OK
281+ res_body = res .json ()
282+ assert res_body ["icon" ] == db_button .icon
283+ assert res_body ["order" ] == db_button .order
284+ assert res_body ["name" ] == db_button .name
285+ assert res_body ["link" ] == db_button .link
286+ assert res_body ["type" ] == db_button .type
287+ assert res_body ["is_hidden" ] == True
288+ res = client .get (f"/category/{ db_category .id } /button/{ db_button .id } " )
289+ assert res .status_code == status .HTTP_200_OK
290+ assert res .json ()["link" ] is None
291+ assert res .json ()["view" ] == "hidden"
292+
293+
294+ def test_delete_hidden_success (client , dbsession , db_button , db_category ):
295+ db_button .is_hidden = True
296+ dbsession .commit ()
297+ res = client .delete (f"/category/{ db_category .id } /button/{ db_button .id } " )
298+ assert res .status_code == status .HTTP_200_OK
299+ q = dbsession .query (Button ).filter (Button .id == db_button .id )
300+ assert not q .one_or_none ()
0 commit comments