import { Button } from '@/components/actions/Button'; import { ActionLink } from '@/components/actions/ActionLink'; import { fireEvent, render, screen } from '@testing-library/react'; import { describe, expect, it, vi } from 'vitest'; describe('action components', () => { it('prevents duplicate interaction while loading and preserves the accessible name', () => { const onClick = vi.fn(); render( , ); const button = screen.getByRole('button', { name: 'Save reservation' }); expect(button).toBeDisabled(); expect(button).toHaveAttribute('aria-busy', 'true'); fireEvent.click(button); expect(onClick).not.toHaveBeenCalled(); }); it('requires an accessible label for icon-only use through its public contract', () => { render(