new _room_gear.html to manage room actions for various gamers (e.g., founders & guests); new _room.scss for gatekeeper styling (still flimsy); added new .btn-abandon Bl-btn palette to _button-pad.scss; new FTs & epic view ITs assert functionality (100 percent coverage, fully passing test suite)
This commit is contained in:
@@ -176,3 +176,45 @@ class GatekeeperTest(FunctionalTest):
|
||||
# Restore the following once room built
|
||||
# body = self.browser.find_element(By.TAG_NAME, "body")
|
||||
# self.assertIn("OPEN", body.text)
|
||||
|
||||
def test_owner_can_delete_room_via_gear_menu(self):
|
||||
self.create_pre_authenticated_session("founder@test.io")
|
||||
self.browser.get(self.live_server_url + "/gameboard/")
|
||||
self.wait_for(lambda: self.browser.find_element(By.ID, "id_new_game_name"))
|
||||
self.browser.find_element(By.ID, "id_new_game_name").send_keys("Doomed Room")
|
||||
self.browser.find_element(By.ID, "id_create_game_btn").click()
|
||||
self.wait_for(lambda: self.assertIn("/gate/", self.browser.current_url))
|
||||
|
||||
self.browser.find_element(By.CSS_SELECTOR, ".gear-btn").click()
|
||||
self.wait_for(
|
||||
lambda: self.browser.find_element(By.CSS_SELECTOR, ".btn-danger")
|
||||
).click()
|
||||
|
||||
self.wait_for(lambda: self.assertEqual(
|
||||
self.browser.current_url, self.live_server_url + "/gameboard/"
|
||||
))
|
||||
self.assertFalse(Room.objects.filter(name="Doomed Room").exists())
|
||||
|
||||
def test_gamer_can_abandon_room_via_gear_menu(self):
|
||||
founder = User.objects.create(email="founder@test.io")
|
||||
room = Room.objects.create(name="Dragon's Den", owner=founder)
|
||||
slot = room.gate_slots.get(slot_number=2)
|
||||
self.create_pre_authenticated_session("gamer@test.io")
|
||||
gamer, _ = User.objects.get_or_create(email="gamer@test.io")
|
||||
slot.gamer = gamer
|
||||
slot.status = "FILLED"
|
||||
slot.save()
|
||||
|
||||
self.browser.get(self.live_server_url + f"/gameboard/room/{room.id}/gate/")
|
||||
|
||||
self.browser.find_element(By.CSS_SELECTOR, ".gear-btn").click()
|
||||
self.wait_for(
|
||||
lambda: self.browser.find_element(By.CSS_SELECTOR, ".btn-abandon")
|
||||
).click()
|
||||
|
||||
self.wait_for(lambda: self.assertEqual(
|
||||
self.browser.current_url, self.live_server_url + "/gameboard/"
|
||||
))
|
||||
slot.refresh_from_db()
|
||||
self.assertEqual(slot.status, "EMPTY")
|
||||
self.assertIsNone(slot.gamer)
|
||||
|
||||
Reference in New Issue
Block a user