maestro/ui/src/components/layout/topbar-collapse.test.ts
oss-sync 3b1645cc91
Some checks failed
CI / build-and-test (push) Has been cancelled
sync: update from private repo (d31b280)
2026-06-11 11:28:40 +00:00

31 lines
1.2 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { shouldCollapseNav } from './TopBar';
describe('shouldCollapseNav', () => {
it('does not collapse while widths are unmeasured (avoids hamburger flash)', () => {
expect(shouldCollapseNav(0, 0, 0)).toBe(false);
expect(shouldCollapseNav(1000, 300, 0)).toBe(false); // navWidth 0 = not measured yet
});
it('keeps tabs when the nav fits the leftover space (minus buffer)', () => {
// row 1000, fixed 300 → 700 available, minus 40 buffer = 660. nav 600 fits.
expect(shouldCollapseNav(1000, 300, 600)).toBe(false);
});
it('collapses when the nav no longer fits', () => {
// 700 available - 40 buffer = 660. nav 700 does not fit.
expect(shouldCollapseNav(1000, 300, 700)).toBe(true);
});
it('respects the buffer at the boundary', () => {
// available 660 after buffer; nav exactly 660 fits, 661 collapses.
expect(shouldCollapseNav(1000, 300, 660)).toBe(false);
expect(shouldCollapseNav(1000, 300, 661)).toBe(true);
});
it('honors a custom buffer', () => {
expect(shouldCollapseNav(1000, 300, 690, 10)).toBe(false); // 690 <= 690
expect(shouldCollapseNav(1000, 300, 691, 10)).toBe(true);
});
});