seat tray: tray.js, SCSS, FTs, Jasmine specs

- new apps.epic.static tray.js: IIFE with drag-open/click-close/wobble
  behaviour; document-level pointermove+mouseup listeners; reset() for
  Jasmine afterEach; try/catch around setPointerCapture for synthetic events
- _room.scss: #id_tray_wrap fixed-right flex container; #id_tray_handle +
  #id_tray_grip (box-shadow frame, transparent inner window, border-radius
  clip); #id_tray_btn grab cursor; #id_tray bevel box-shadows, margin-left
  gap, height removed (align-items:stretch handles it); tray-wobble keyframes
- _applets.scss + _game-kit.scss: z-index raised (312-318) for primacy over
  tray (310)
- room.html: #id_tray_wrap + children markup; tray.js script tag
- FTs test_room_tray: 5 tests (T1-T5); _simulate_drag via execute_script
  pointer events (replaces unreliable ActionChains drag); wobble asserts on
  #id_tray_wrap not btn
- static_src/tests/TraySpec.js + SpecRunner.html: Jasmine unit tests for
  all tray.js branches

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-03-28 18:52:46 -04:00
parent 30ea0fad9d
commit b35c9b483e
22 changed files with 16193 additions and 18 deletions

View File

@@ -43,14 +43,13 @@ class FunctionalTest(StaticLiveServerTestCase):
if headless:
options.add_argument("--headless")
self.browser = webdriver.Firefox(options=options)
if headless:
self.browser.set_window_size(1366, 900)
self.browser.set_window_size(1366, 900)
self.test_server = os.environ.get("TEST_SERVER")
if self.test_server:
self.live_server_url = 'http://' + self.test_server
reset_database(self.test_server)
Applet.objects.get_or_create(slug="new-note", defaults={"name": "New Note"})
def tearDown(self):
if self._test_has_failed():
if not SCREEN_DUMP_LOCATION.exists():
@@ -148,8 +147,7 @@ class ChannelsFunctionalTest(ChannelsLiveServerTestCase):
if headless:
options.add_argument("--headless")
self.browser = webdriver.Firefox(options=options)
if headless:
self.browser.set_window_size(1366, 900)
self.browser.set_window_size(1366, 900)
self.test_server = os.environ.get("TEST_SERVER")
if self.test_server:
self.live_server_url = 'http://' + self.test_server