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