Resumen Técnico
Se busca ejecutar pruebas unitarias usando Vitest, pero al utilizar el fixture de @open-wc, no funciona como se esperaba.
El problema
El proyecto utiliza Lit Element con múltiples pruebas unitarias y se está usando Playwright como corredor. Al escribir una prueba, se espera que el fixture de @open-wc monte correctamente el componente en el DOM necesario para las pruebas.
import { expect, fixture, html } from '@open-wc/testing';
describe('MyComponent', async () => {
it('should exist', async () => {
const myComponent = /** @type {MyComponent} */ (
await fixture(html`
<my-component></my-component>
`)
);
expect(myComponent).to.exist;
}
})
Se inicializó la configuración de Vitest con npx vitest init browser
. Se definió el ambiente como jsdom
, habilitando el uso de Playwright como proveedor del navegador. Sin embargo, el cambio de la importación afectó la ejecución de las pruebas.
import { describe, it, expect } from 'vitest';
Las pruebas que no requieren el navegador funcionan correctamente, pero al ejecutar las pruebas que sí lo requieren, se produce un error debido a que no se monta correctamente el componente en el DOM.
Intentos de Solución:
- Se intentó agregar cargadores similares a la configuración de React, pero no se observaron mejoras.
import { litStyleLoader, litTemplateLoader } from '@mordech/vite-lit-loader';
export default defineConfig({
plugins: [litStyleLoader(), litTemplateLoader()],
// ...
happy-dom
, pero tampoco tuvo éxito.Posible Solución:
Es posible que se necesite verificar si los plugins de Lit están siendo correctamente aplicados en la configuración de Vitest y asegurar que el fixture de @open-wc esté completamente compatible con el entorno y el corredor de Playwright. Además, revisar la implementación de los componentes para asegurar que se están montando correctamente y que todos los recursos necesarios están disponibles en el contexto de prueba.