mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
34 lines
1002 B
TypeScript
34 lines
1002 B
TypeScript
import { render } from "@testing-library/react";
|
|
import { afterEach, describe, expect, it } from "vitest";
|
|
import { FullScreenPanel } from "@/components/common/FullScreenPanel";
|
|
|
|
const Panels = ({ innerOpen }: { innerOpen: boolean }) => (
|
|
<>
|
|
<FullScreenPanel isOpen title="Outer" onClose={() => undefined}>
|
|
outer
|
|
</FullScreenPanel>
|
|
<FullScreenPanel isOpen={innerOpen} title="Inner" onClose={() => undefined}>
|
|
inner
|
|
</FullScreenPanel>
|
|
</>
|
|
);
|
|
|
|
describe("FullScreenPanel body scroll locking", () => {
|
|
afterEach(() => {
|
|
document.body.style.overflow = "";
|
|
});
|
|
|
|
it("keeps the body locked when a nested panel closes", () => {
|
|
document.body.style.overflow = "clip";
|
|
const view = render(<Panels innerOpen />);
|
|
|
|
expect(document.body.style.overflow).toBe("hidden");
|
|
|
|
view.rerender(<Panels innerOpen={false} />);
|
|
expect(document.body.style.overflow).toBe("hidden");
|
|
|
|
view.unmount();
|
|
expect(document.body.style.overflow).toBe("clip");
|
|
});
|
|
});
|