hermes-agent/web/src/lib/dashboard-modal-shell.test.ts
HexLab 1cf2c763ef
fix(dashboard): opaque MoA presets modal (stop page bleed-through) (#67410)
* fix(dashboard): make MoA presets modal opaque and readable

Card defaults to bg-background-base/80 glass, so the Mixture of Agents
dialog let the Models page bleed through — especially on Cyberpunk/mobile.
Portal an opaque dialog shell above the z-2 dashboard column, and ignore
Escape while the nested model picker is open.

* test(web): lock dashboard modal shell to opaque panel classes

Guard the MoA/dialog shell contract so glass Card defaults cannot
quietly return to modal panels, and Escape stays picker-aware.
2026-07-19 19:09:12 -04:00

23 lines
852 B
TypeScript

import { describe, expect, it } from "vitest";
import {
DASHBOARD_MODAL_BACKDROP,
DASHBOARD_MODAL_PANEL,
shouldCloseOuterModalOnEscape,
} from "./dashboard-modal-shell";
describe("dashboard modal shell", () => {
it("uses an opaque panel (bg-card), not the glass Card default", () => {
expect(DASHBOARD_MODAL_PANEL).toMatch(/\bbg-card\b/);
expect(DASHBOARD_MODAL_PANEL).not.toMatch(/bg-background-base\/\d+/);
});
it("keeps the backdrop above page chrome (z-[100])", () => {
expect(DASHBOARD_MODAL_BACKDROP).toMatch(/z-\[100\]/);
expect(DASHBOARD_MODAL_BACKDROP).toMatch(/\bbg-background\/85\b/);
});
it("does not close the outer modal on Escape while a nested picker is open", () => {
expect(shouldCloseOuterModalOnEscape(true)).toBe(false);
expect(shouldCloseOuterModalOnEscape(false)).toBe(true);
});
});