En mi aplicación utilizo una zona horaria específica (Reino Unido). Para ejecutar las pruebas, uso "test": "TZ=UTC jest . En mi código, creé una función que usa Intl api.
const Date = (d, opt = {}) => { return new Intl.DateTimeFormat( 'en-GB', { ...opt, timeZone: 'Europe/London' } ).format(new Date(d)) } El problema es el siguiente: cuando ejecuto la prueba con npm run test los resultados son diferentes si ejecuto una sola prueba localmente. Por ejemplo, si ejecuto una prueba separada en mi aplicación de reacción y espero que la próxima fecha sea a las 08:00 , el código funciona, pero si ejecuto el código usando npm run test el código no da el valor esperado, sino que da 10:00 . El problema aparece cuando configuro hacer esto en mi prueba:
test('It should return time', () => { const n = new Date() n.setHours(10) n.setMinutes(00) const r = getD(n) expect(r).toEqual('10:30') // expect 08:00 })npm run test usa UTC, y cuando las ejecuto localmente las pruebas usan la fecha correcta. Pero, ¿cómo evitar este problema y obtener cada vez la hora correcta?