Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

150
Vistas
¿Cómo configuro jsdom con broma?

Instalé jest y jsdom en mi proyecto de reacción, pero tengo problemas para importar un componente de reacción que usa la variable window.localStorage . He agregado un archivo de instalación para jsdom que creía que resolvería el problema.

He aquí mi arreglo:

configuración de broma en paquete.json

 "jest": { "verbose": true, "testEnvironment": "jsdom", "testURL": "http://localhost:8080/Dashboard/index.html", "transform": { "^.+\\.js$": "<rootDir>/node_modules/babel-jest", "^.+\\.jsx$": "<rootDir>/node_modules/babel-jest" }, "unmockedModulePathPatterns": [ "node_modules/react/", ], "moduleFileExtensions": [ "js", "jsx", "json", "es6" ] }

configuración.js

 import jsdom from 'jsdom'; const DEFAULT_HTML = '<html><body></body></html>'; global.document = jsdom.jsdom(DEFAULT_HTML); global.window = document.defaultView; global.navigator = window.navigator; global.localStorage = window.localStorage;

prueba.js

 'use strict'; import setup from './setup'; import React from 'react'; import jsdom from 'jsdom'; import Reportlet from '../components/Reportlet.jsx'; it('Ensures the react component renders', () => { });

Mi componente reportlet usa la variable localStorage pero grita:

Cannot read property getItem of undefined cuando llamo a localStorage.getItem(<some item>)

Leí aquí que jest viene con jsdom, pero no estoy seguro de si necesito la dependencia adicional de jsdom o no. También leí aquí que jsdom debe cargarse antes de requerir reaccionar por primera vez.

¿Alguien sabe cómo configurar jest con jsdom correctamente?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

jsdom no admite almacenamiento local. Parece que puede usar un código auxiliar compatible con nodos como 'node-localstorage'. Vea la parte inferior de los comentarios en https://github.com/tmpvar/jsdom/issues/1137

...o puedes simularlo con algo como https://github.com/letsrock-today/mock-local-storage

... o haga su propio simulacro como se ve aquí: ¿Cómo simular el almacenamiento local en las pruebas unitarias de JavaScript?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda