import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { Card } from '../Card';

describe('<Card>', () => {
    it('renders a non-interactive container by default', () => {
        render(<Card>content</Card>);
        expect(screen.queryByRole('button')).toBeNull();
        expect(screen.getByText('content')).toBeInTheDocument();
    });

    it('renders a real, keyboard-operable button when onPress is given', async () => {
        const onPress = jest.fn();
        render(
            <Card onPress={onPress} aria-label="Open monitor">
                content
            </Card>,
        );
        const btn = screen.getByRole('button', { name: 'Open monitor' });
        btn.focus();
        await userEvent.keyboard('{Enter}');
        expect(onPress).toHaveBeenCalledTimes(1);
    });
});
