From b110bb6d01b5b39e78af2eceffb96d652ddf6752 Mon Sep 17 00:00:00 2001 From: Disco DeDisco Date: Sun, 5 Apr 2026 23:33:13 -0400 Subject: [PATCH] remove obsolete skipped tests; fix billboard applet menu containment; align landscape menus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deleted skips: - test_fan_next_button_advances_card (T11) + test_fan_remembers_position_on_reopen (T13): fan-nav nav button obstruction — deferred indefinitely, not worth tracking - test_selected_sig_card_removed_from_deck_for_other_gamers (S5): card count mismatch in channels context — grand overhaul pending, obsolete with new sig-select - Removed stale TODO comment about #id_inv_sig_card (element no longer exists) - Dropped unused `import unittest` from test_room_sig_select.py billboard applet menu fix: moved #id_billboard_applet_menu out of #id_billboard_applets_container — container-type:inline-size was making the container a containing block for fixed-position descendants, clipping the menu. Landscape menu alignment: all applet menus now right:0.5rem (flush with gear/kit buttons in the 4rem right sidebar); added #id_room_menu to the landscape rule. Co-Authored-By: Claude Sonnet 4.6 --- .../test_component_cards_tarot.py | 57 +---------------- src/functional_tests/test_room_sig_select.py | 63 ------------------- src/static_src/scss/_applets.scss | 5 +- .../apps/billboard/_partials/_applets.html | 48 +++++++------- 4 files changed, 28 insertions(+), 145 deletions(-) diff --git a/src/functional_tests/test_component_cards_tarot.py b/src/functional_tests/test_component_cards_tarot.py index e8be2d7..51db5a2 100644 --- a/src/functional_tests/test_component_cards_tarot.py +++ b/src/functional_tests/test_component_cards_tarot.py @@ -442,28 +442,7 @@ class GameKitPageTest(FunctionalTest): self.assertGreater(len(visible), 1) # ------------------------------------------------------------------ # - # Test 11 — next button advances the active card # - # ------------------------------------------------------------------ # - - @unittest.skip("fan-nav button obscured by dialog at 1366×900 — fix with tray/room.html styling pass") - def test_fan_next_button_advances_card(self): - self.browser.get(self.live_server_url + "/gameboard/game-kit/") - self.wait_for( - lambda: self.browser.find_element(By.CSS_SELECTOR, "#id_gk_decks .gk-deck-card") - ).click() - first_index = self.wait_for( - lambda: self.browser.find_element(By.CSS_SELECTOR, ".fan-card--active") - ).get_attribute("data-index") - self.browser.find_element(By.ID, "id_fan_next").click() - self.wait_for( - lambda: self.assertNotEqual( - self.browser.find_element(By.CSS_SELECTOR, ".fan-card--active").get_attribute("data-index"), - first_index, - ) - ) - - # ------------------------------------------------------------------ # - # Test 12 — clicking outside the modal closes it # + # Test 11 — clicking outside the modal closes it # # ------------------------------------------------------------------ # def test_pressing_escape_closes_fan_modal(self): @@ -477,37 +456,3 @@ class GameKitPageTest(FunctionalTest): dialog.send_keys(Keys.ESCAPE) self.wait_for(lambda: self.assertFalse(dialog.is_displayed())) - # ------------------------------------------------------------------ # - # Test 13 — reopening the modal remembers scroll position # - # ------------------------------------------------------------------ # - - @unittest.skip("fan-nav button obscured by dialog at 1366×900 — fix with tray/room.html styling pass") - def test_fan_remembers_position_on_reopen(self): - self.browser.get(self.live_server_url + "/gameboard/game-kit/") - deck_card = self.wait_for( - lambda: self.browser.find_element(By.CSS_SELECTOR, "#id_gk_decks .gk-deck-card") - ) - deck_card.click() - self.wait_for(lambda: self.browser.find_element(By.CSS_SELECTOR, ".fan-card--active")) - # Advance 3 cards - for _ in range(3): - self.browser.find_element(By.ID, "id_fan_next").click() - saved_index = self.wait_for( - lambda: self.browser.find_element(By.CSS_SELECTOR, ".fan-card--active").get_attribute("data-index") - ) - # Close via ESC - from selenium.webdriver.common.keys import Keys - self.browser.find_element(By.ID, "id_tarot_fan_dialog").send_keys(Keys.ESCAPE) - self.wait_for( - lambda: self.assertFalse( - self.browser.find_element(By.ID, "id_tarot_fan_dialog").is_displayed() - ) - ) - # Reopen and verify position restored - deck_card.click() - self.wait_for( - lambda: self.assertEqual( - self.browser.find_element(By.CSS_SELECTOR, ".fan-card--active").get_attribute("data-index"), - saved_index, - ) - ) diff --git a/src/functional_tests/test_room_sig_select.py b/src/functional_tests/test_room_sig_select.py index 506fa64..02fb7c3 100644 --- a/src/functional_tests/test_room_sig_select.py +++ b/src/functional_tests/test_room_sig_select.py @@ -1,5 +1,4 @@ import os -import unittest from django.conf import settings as django_settings from django.test import tag @@ -189,10 +188,6 @@ class SigSelectTest(FunctionalTest): ) ) - # TODO: sig card should appear in the tray (tray.placeCard for sig phase) - # once sig-select.js is updated to call Tray.placeCard instead of - # appending to the removed #id_inv_sig_card inventory element. - # Active seat advances to NC self.wait_for( lambda: self.browser.find_element( @@ -257,61 +252,3 @@ class SigSelectChannelsTest(ChannelsFunctionalTest): )) return b - # ------------------------------------------------------------------ # - # Test S5 — Selected sig card disappears for watching gamer (WS) # - # ------------------------------------------------------------------ # - - @unittest.skip("sig deck card count wrong in channels context (40 != 36) — grand overhaul pending") - def test_selected_sig_card_removed_from_deck_for_other_gamers(self): - founder, _ = User.objects.get_or_create(email="founder@test.io") - User.objects.get_or_create(email="watcher@test.io") - room = Room.objects.create(name="Sig WS Test", owner=founder) - _fill_room_via_orm(room, [ - "founder@test.io", "watcher@test.io", "bud@test.io", - "pal@test.io", "dude@test.io", "bro@test.io", - ]) - # Founder is PC (active first); watcher is NC (second) - _assign_all_roles(room, role_order=["PC", "NC", "EC", "SC", "AC", "BC"]) - room_url = f"{self.live_server_url}/gameboard/room/{room.id}/gate/" - - # Watcher loads room, sees 36 cards - self.create_pre_authenticated_session("watcher@test.io") - self.browser.get(room_url) - self.wait_for( - lambda: self.assertEqual( - len(self.browser.find_elements(By.CSS_SELECTOR, "#id_sig_deck .sig-card")), - 36, - ) - ) - - # Founder picks a significator in second browser - self.browser2 = self._make_browser2("founder@test.io") - try: - self.browser2.get(room_url) - self.wait_for(lambda: self.browser2.find_element( - By.CSS_SELECTOR, ".table-seat.active[data-role='PC']" - )) - self.browser2.find_element( - By.CSS_SELECTOR, "#id_sig_deck .sig-card" - ).click() - self.confirm_guard(browser=self.browser2) - - # Watcher's deck shrinks to 35 without a page reload - self.wait_for( - lambda: self.assertEqual( - len(self.browser.find_elements( - By.CSS_SELECTOR, "#id_sig_deck .sig-card" - )), - 35, - ) - ) - - # Active seat advances to NC in both browsers - self.wait_for(lambda: self.browser.find_element( - By.CSS_SELECTOR, ".table-seat.active[data-role='NC']" - )) - self.wait_for(lambda: self.browser2.find_element( - By.CSS_SELECTOR, ".table-seat.active[data-role='NC']" - )) - finally: - self.browser2.quit() diff --git a/src/static_src/scss/_applets.scss b/src/static_src/scss/_applets.scss index 6e98548..6765de3 100644 --- a/src/static_src/scss/_applets.scss +++ b/src/static_src/scss/_applets.scss @@ -129,9 +129,10 @@ #id_game_applet_menu, #id_game_kit_menu, #id_wallet_applet_menu, + #id_room_menu, #id_billboard_applet_menu { - right: calc(#{$sidebar-w} + 1rem); - bottom: 6.6rem; // same as portrait, just shifted right of footer sidebar + right: 0.5rem; + bottom: 6.6rem; top: auto; } } diff --git a/src/templates/apps/billboard/_partials/_applets.html b/src/templates/apps/billboard/_partials/_applets.html index a5082f3..68efcba 100644 --- a/src/templates/apps/billboard/_partials/_applets.html +++ b/src/templates/apps/billboard/_partials/_applets.html @@ -1,27 +1,27 @@ +
- {% include "apps/applets/_partials/_applets.html" %}