Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

145
Visualizações
La prueba de canalización falla debido a la diferencia horaria de los entornos local y de canalización

Tengo un problema relacionado con la diferencia entre la ejecución de la canalización y mi entorno local. Estoy interceptando una solicitud usando el siguiente comando:

 cy.intercept( { method: "GET", pathname: env.path, query: { dateFrom: "2020-12-31T22:00:00.000Z", dateTo: "2022-01-01T21:59:59.000Z", }, }, (req) => { expect(req.url).to.include( "&dateFrom=2020-12-31T22%3A00%3A00.000Z", "Date From included" ); expect(req.url).to.include( "&dateTo=2022-01-01T21%3A59%3A59.000Z", "Date to included" ); } ).as("filterByDates");

Ejecutarlo en mi entorno local está bien, pero cuando lo ejecuto en la canalización hay un problema, porque la hora del servidor es UTC por defecto, la prueba siempre falla, porque la hora de envío no es la esperada.

Ahora estoy pensando cómo abordar esto, porque la entrada de tiempo no es mía, sino del complemento "datePicker", que siempre ingresa la hora de la máquina (servidor/entorno), por lo que la pregunta es cuál es un buen enfoque para esto. ¿tema? (Estoy usando day.js) ¿Convierto cada entrada de tiempo a UTC? ¿Intercepto la solicitud y hago que sea UTC -2 para la solicitud? ¿O debería simplemente ignorar todo después de "T", incluidas las horas/minutos/segundos, a lo que estoy totalmente en contra?

Realmente me alegraré si recibo respuestas, gracias de antemano.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Sí, debe convertir los valores esperados a TZ en común con el entorno de prueba.

Pero la prueba también tiene que saber en qué entorno se ejecuta.

 var utc = require('dayjs/plugin/utc') dayjs.extend(utc) ... cy.intercept( ... (req) => { let expectedDateFrom = "2020-12-31T22:00:00.000Z"; const isCI = Cypress.env('CI'); if (isCI) { expectedDateFrom = dayjs().utc().format() } const encodedDateFrom = encodeURI(expectedDateFrom) expect(req.url).to.include(`&dateFrom=${encodedDateFrom}`,"Date From included");

Como tiene dos fechas, ¿tal vez una función de conversión?

 const toEnvFormat = (expected) => { const isCI = Cypress.env('CI'); if (isCI) { expected = dayjs().utc().format() } return expected; } cy.intercept( ... (req) => { const expectedDateFrom = toEnvFormat("2020-12-31T22:00:00.000Z"); const encodedDateFrom = encodeURI(expectedDateFrom) expect(req.url).to.include(`&dateFrom=${encodedDateFrom}`,"Date From included");

Día refjs UTC

about 4 years ago · Juan Pablo Isaza Relatório

0

Encontré una solución para simplemente agregar la zona horaria al package.json en la carpeta raíz de la siguiente manera:

 "scripts": { "start": "TZ=Europe/Sofia npx cypress open", "run": "TZ=Europe/Sofia npx cypress run --browser chrome" },
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda