Tengo un proyecto ReactJs donde también uso jest para probar. Para mostrar la hora según la zona horaria del Reino Unido, creé esta función:
const getDateTZ = dt => { const d = new Date(dt) const o = { hour: '2-digit', minute: '2-digit', timeZone: 'Europe/London' } return d.toLocaleTimeString('en-GB', o) } console.log(getDateTZ(new Date()))Esta función funciona bien y al ejecutarla obtengo el momento adecuado. Para probar esta función con broma, agrego esto:
test('It should return time', () => { const today = new Date() today.setHours(11) today.setMinutes(30) const r = getDateTZ(today) expect(r).toEqual('09:30') })"test": "TZ=UTC jest , la prueba anterior falla y genera esto cuando hago npm run test : Expected: "09:30" Received: "11:30" Entonces, cuando ejecuto todas las pruebas, mi prueba falla porque recibo 11:30 en lugar de 09:30 , incluso si la prueba funciona si la ejecuto por separado en el archivo de prueba.
Pregunta : ¿Por qué tengo este problema y cómo deshacerme de él?