// 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('<nav'), nav.indexOf('backdropFilter') + 200);
    expect(navBlock).toMatch(/position: 'relative'/);
    expect(navBlock).toMatch(/zIndex: 2/);
  });

  it('the dropdown menus declare a high z-index', () => {
    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"');
  });
});
