diff --git a/src/lib/components/TarjetaCancion.svelte.spec.ts b/src/lib/components/TarjetaCancion.svelte.spec.ts index dea0468..8458951 100644 --- a/src/lib/components/TarjetaCancion.svelte.spec.ts +++ b/src/lib/components/TarjetaCancion.svelte.spec.ts @@ -1,10 +1,57 @@ import { page } from '@vitest/browser/context'; -import { describe, expect, it } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { render } from 'vitest-browser-svelte'; import TarjetaCancion from './TarjetaCancion.svelte'; import type { PistaReproductor } from '$lib/player/player.svelte'; import type { Cancion } from '$lib/types'; +/* + * La tarjeta busca en el catálogo el disco y el estilo de su tema, y desde que + * el catálogo está en la base eso baja por `page.data`. Aquí se monta suelta, + * así que hay que dárselo: sin esto la línea de contexto sale vacía y la + * prueba fallaba sin que hubiera nada roto en el componente. + */ +vi.mock('$app/state', () => ({ + page: { + // Los botones de carrito y favorito lo leen para saber a dónde volver. + url: new URL('http://localhost/musica'), + get data() { + return { + catalogo: { + estilos: [ + { + slug: 'baladas-romanticas', + nombre: 'Baladas románticas', + resumen: '', + orden: 0, + principal: true + } + ], + albumes: [ + { + slug: 'como-si-nada', + titulo: 'Como si nada', + estilo: 'baladas-romanticas', + fecha: '2024-01-01', + tipo: 'album', + portada: '/images/como-si-nada/portada.svg', + resumen: '', + destacado: false, + enlaces: {}, + sintetico: false, + edicion: { formatos: [], creditos: [] } + } + ], + canciones: [] + }, + carrito: [], + compras: [], + favoritos: [] + }; + } + } +})); + function cancion(parcial: Partial = {}): Cancion { return { slug: 'como-si-nada',