Estoy haciendo pruebas unitarias.
it("Month calculate", () => { const baseDate = new Date("2015-02-15T12:00:00.000Z"); baseDate.setMonth(baseDate.getMonth() + 1) expect(baseDate.toISOString()).toBe("2015-03-15T12:00:00.000Z") })En mi proceso de nodo local me sale este error
Expected: "2015-03-15T12:00:00.000Z" Received: "2015-03-15T13:00:00.000Z"En el proceso del nodo docker funciona.
Creo que está relacionado con el horario de verano, pero no entiendo cómo...
Tiene razón en que el horario de verano está entrando en juego, porque está utilizando los métodos setMonth / getMonth de la hora local , por lo que el horario de verano entra en juego (al agregar el mes, el objeto Date tiene en cuenta el horario de verano para evitar cambiar la hora del día ; pero cuando observa el resultado en UTC, ve que la hora está desfasada por el desplazamiento del horario de verano, ya que fue la matemática de la hora local la que se aplicó al incremento). Para trabajar en UTC como el resto de su código, use setUTCMonth / getUTCMonth en su lugar.
it("Month calculate", () => { const baseDate = new Date("2015-02-15T12:00:00.000Z"); baseDate.setUTCMonth(baseDate.getUTCMonth() + 1) expect(baseDate.toISOString()).toBe("2015-03-15T12:00:00.000Z") })Es probable que su nodo acoplable esté funcionando UTC, o al menos en una zona horaria donde el horario de verano no cambie durante ese mes (aquí en el Reino Unido, por ejemplo, no cambiamos hasta finales de marzo). Pero en su zona horaria local, aparentemente el horario de verano ocurre durante ese mes, por lo que ve el problema localmente pero no en el nodo de la ventana acoplable.