parent
ac231c7600
commit
ac0119a16d
@ -0,0 +1,37 @@
|
||||
import { page } from 'vitest/browser';
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { render } from 'vitest-browser-svelte';
|
||||
import BotonListaReproduccion from './BotonListaReproduccion.svelte';
|
||||
|
||||
vi.mock('$app/state', () => ({
|
||||
page: {
|
||||
url: new URL('http://localhost/canciones/prometiste'),
|
||||
data: { usuario: { id: 'usuario-prueba' } },
|
||||
form: null
|
||||
}
|
||||
}));
|
||||
|
||||
describe('BotonListaReproduccion', () => {
|
||||
it('integra el botón de crear y permite cerrar el selector', async () => {
|
||||
render(BotonListaReproduccion, {
|
||||
cancionSlug: 'prometiste',
|
||||
listas: [{ id: 'favoritas', nombre: 'Favoritas', canciones: [] }]
|
||||
});
|
||||
|
||||
const activador = page.getByLabelText('Añadir a una lista de reproducción');
|
||||
await activador.click();
|
||||
|
||||
const nombre = page.getByPlaceholder('Nombre');
|
||||
const crear = page.getByRole('button', { name: 'Crear' });
|
||||
await expect.element(nombre).toBeVisible();
|
||||
await expect.element(crear).toBeVisible();
|
||||
|
||||
const altoNombre = nombre.element().getBoundingClientRect().height;
|
||||
const altoCrear = crear.element().getBoundingClientRect().height;
|
||||
expect(altoCrear).toBe(altoNombre);
|
||||
|
||||
await page.getByRole('button', { name: 'Cerrar listas' }).click();
|
||||
await expect.element(nombre).not.toBeVisible();
|
||||
await expect.element(activador).toHaveFocus();
|
||||
});
|
||||
});
|
||||
Loading…
Reference in new issue