import { render, screen } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import { Button } from '../../src/marketing/Button.tsx';
describe('Button', () => {
it('renders a link with its label and destination', () => {
render();
expect(screen.getByRole('link', { name: 'Get started' })).toHaveAttribute('href', '/signup');
});
it('is the primary (inverse) pill by default', () => {
render();
expect(screen.getByRole('link', { name: 'Get started' })).toHaveClass('btn', 'btn-primary', 'btn-md');
});
it('supports the ghost and secondary variants and the large size', () => {
const { rerender } = render();
expect(screen.getByRole('link', { name: 'See how it works' })).toHaveClass('btn-ghost', 'btn-lg');
rerender();
expect(screen.getByRole('link', { name: 'How approval works' })).toHaveClass('btn-secondary');
});
it('supports a light variant for use on the dark panel', () => {
render();
expect(screen.getByRole('link', { name: 'Get started' })).toHaveClass('btn-light');
});
it('can end with an arrow that is not announced', () => {
render();
const link = screen.getByRole('link', { name: 'See how it works' });
expect(link.querySelector('.icon')).toHaveAttribute('aria-hidden', 'true');
});
});