fixed modal UX issue; now persists as intended, until token cost met in all six slots
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import time
|
||||
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
from .base import FunctionalTest
|
||||
@@ -195,6 +197,23 @@ class GatekeeperTest(FunctionalTest):
|
||||
))
|
||||
self.assertFalse(Room.objects.filter(name="Doomed Room").exists())
|
||||
|
||||
def test_gatekeeper_overlay_persists_after_htmx_poll(self):
|
||||
# 1. Create room directly (GATHERING) and navigate to its gate URL
|
||||
self.create_pre_authenticated_session("founder@test.io")
|
||||
founder = User.objects.get(email="founder@test.io")
|
||||
room = Room.objects.create(name="Persistent Room", owner=founder)
|
||||
self.browser.get(self.live_server_url + f"/gameboard/room/{room.id}/gate/")
|
||||
# 2. Assert overlay visible on initial page load
|
||||
self.wait_for(
|
||||
lambda: self.browser.find_element(By.CSS_SELECTOR, ".gate-overlay")
|
||||
)
|
||||
# 3. Wait for HTMX poll cycle to fire (poll interval is 3s)
|
||||
time.sleep(4)
|
||||
# 4. Assert overlay still present and visible after poll
|
||||
overlays = self.browser.find_elements(By.CSS_SELECTOR, ".gate-overlay")
|
||||
self.assertEqual(len(overlays), 1)
|
||||
self.assertTrue(overlays[0].is_displayed())
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user