import { describe, test, expect } from 'vitest'; import { Menu } from './Menu'; const toHtml = (Menu as any).toHtml; describe('Menu.toHtml deterministic + unique scope ids (thread node id, no Math.random)', () => { test('same node id -> identical output across calls (deterministic)', () => { const { html: html1 } = toHtml({}, '', 'node-menu1'); const { html: html2 } = toHtml({}, '', 'node-menu1'); expect(html1).toBe(html2); }); test('different node ids -> different, non-colliding scope classes (identical default links, no collision)', () => { const { html: html1 } = toHtml({}, '', 'node-menu1'); const { html: html2 } = toHtml({}, '', 'node-menu2'); const cls1 = html1.match(/\.([a-z0-9_]+-link):hover/)![1]; const cls2 = html2.match(/\.([a-z0-9_]+-link):hover/)![1]; expect(cls1).not.toBe(cls2); }); test('the anchor class= and the