import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { CTA } from '../CTA';
describe('', () => {
it('renders the label with arrow', () => {
render();
expect(screen.getByRole('link', { name: /define tu siguiente movimiento/i })).toBeInTheDocument();
});
it('uses the href', () => {
render();
expect(screen.getByRole('link').getAttribute('href')).toBe('#contacto');
});
it('renders the ghost variant outlined, so it reads as secondary', () => {
render();
const classes = screen.getByRole('link').className.split(/\s+/);
expect(classes).toContain('border-azul-profundo');
expect(classes).not.toContain('bg-azul-profundo'); // sólo se rellena en hover
expect(classes).toContain('hover:bg-azul-profundo');
});
it('rellena en dorado con la etiqueta en azul profundo', () => {
// Blanco sobre el dorado del manual (#C4942E) es 2,76:1 — no pasa AA para
// texto pequeño, y esta es la variante del botón que cierra la página.
// Azul profundo sobre ese mismo dorado da 6,07:1.
render();
const classes = screen.getByRole('link').className.split(/\s+/);
expect(classes).toContain('bg-dorado');
expect(classes).toContain('text-azul-profundo');
expect(classes).not.toContain('text-white');
});
it('keeps every variant the same height', () => {
const { container } = render(
<>
>,
);
const [light, ghost] = Array.from(container.querySelectorAll('a'));
expect(light.className).toContain('border-2');
expect(ghost.className).toContain('border-2');
});
});