// Session 43 — P0: avatar/More dropdowns must be clickable above the living-layer // bars (Ticker + HeartbeatBar). Asserted in source: the nav floats above them // and the menus carry an explicit z-index. const fs = require('fs'); const path = require('path'); const WEB = path.join(__dirname, '..', '..', 'web', 'src'); const nav = fs.readFileSync(path.join(WEB, 'components', 'Nav.tsx'), 'utf8'); describe('Nav dropdown z-index (P0 fix)', () => { it('the nav element floats above the ticker/heartbeat (position+zIndex on the stacking-context nav)', () => { // The nav block carries backdrop-filter; it must also set position+zIndex. const navBlock = nav.slice(nav.indexOf(' { const menuZ = (nav.match(/zIndex: 100/g) || []).length; expect(menuZ).toBeGreaterThanOrEqual(2); // More + avatar menus }); }); describe('Nav links (Session 42/43)', () => { it('MORE includes Explore and Settings -> /settings', () => { expect(nav).toContain("label: 'Explore', href: '/explore'"); expect(nav).toContain("label: 'Settings', href: '/settings'"); }); it('avatar dropdown Settings links to /settings (not /settings/security)', () => { expect(nav).toContain('href="/settings" role="menuitem"'); }); });