import React from 'react';
import { describe, it, expect, vi } from 'vitest';
import { render } from '@testing-library/react';
import { PixelSheet } from '../../overlays/PixelSheet';
describe('PixelSheet', () => {
it('renders nothing when open=false', () => {
const onOpenChange = vi.fn();
const { queryByTestId } = render(
body
,
);
expect(queryByTestId('sheet-body')).toBeNull();
});
it('renders into portal (document.body) when open=true', () => {
const onOpenChange = vi.fn();
const { getByTestId, container } = render(
body
,
);
const body = getByTestId('sheet-body');
expect(body).toBeTruthy();
// Portal escape: child is NOT a descendant of the test container root.
expect(container.contains(body)).toBe(false);
// But it IS in the document.
expect(document.body.contains(body)).toBe(true);
});
it('defaults side="bottom" (panel anchored to bottom edge)', () => {
const onOpenChange = vi.fn();
const { getByRole } = render(
body
,
);
const dialog = getByRole('dialog');
expect(dialog).toHaveAttribute('data-side', 'bottom');
});
it('renders drag handle when dragHandle=true', () => {
const onOpenChange = vi.fn();
const { getByTestId, rerender } = render(
body
,
);
expect(getByTestId('pixel-sheet-drag-handle')).toBeInTheDocument();
rerender(
body
,
);
expect(() => getByTestId('pixel-sheet-drag-handle')).toThrow();
});
});