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

156
Visualizações
Best way to check against predefined values

This is a calendar check. For example: 100 days of history is available but 101 days back would be disabled for certain market.

Code is following:

const todaysDate3 = dayjs().subtract(101, 'days').format('DD')
const todaysDate4 = dayjs().subtract(100, 'days').format('DD') //etc
 cy.visit(`http://calendar.whatever/ICN&markettype=ICN`);
cy.get('.calendar-table').click
cy.get('.calendar-table').contains('td',(todaysDate3)).should("have.class","disabled")           
cy.get('.calendar-table').contains('td',(todaysDate4)).should("have.class","enabled")           

What would be the best practice to make such test for 80, 100, 365 etc days as every market. Worst case scenario I can think of is something like

export const 100days = [{
  "url": (`http://calendar.whatever/ICN`),
  "has100days": true
}]

and like this for every possible value and using if (curr.has100days) //do something } else if (curr.has365days){do something else}

Probably best would be to write some kind of function?

thank you for your help!

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

0

You can do something like this:

cy.get('.calendar-table')
  .find('td')
  .then(($ele) => {
    if ($ele.text().includes(todaysDate3)) {
      cy.wrap($ele).should('have.class', 'disabled')
      //Do Something
    } else if ($ele.text().includes(todaysDate4)) {
      cy.wrap($ele).should('have.class', 'enabled')
      //Do Something
    } else {
      //Do something
    }
  })
about 4 years ago · Juan Pablo Isaza Relatório

0

Since you visit each market, the data-driven approach you indicate is best.

const history = [
  { market: 'ICN', days: 100 },
  { market: 'ZYX', days: 120 },
  ...
]

history.forEach(data => {
  
  cy.log(`Testing ${data.market} with ${data.days} history`)

  cy.visit(`http://calendar.whatever/ICN&markettype=${data.market}`)

  const outsideHistory = dayjs().subtract(data.days+1, 'days')
    .format('D')  // no leading '0'

  const insideHistory = dayjs().subtract(data.days, 'days')
    .format('D')  // no leading '0'

  const outsideHistoryRegex = new RegExp(`^${outsideHistory}`)  // ^ = startsWith
  const insideHistoryRegex = new RegExp(`^${insideHistory}`) 

  cy.get('.calendar-table').click

  cy.get('.calendar-table').contains('td', outsideHistoryRegex)
    .last()
    .should("have.class","disabled")            

  cy.get('.calendar-table').contains('td', insideHistoryRegex)
    .last()
    .should("have.class","enabled")
}

I'm assuming you only want to check the history boundary for each market, but if you want to check multiple dates per market

const history = [
  { market: 'ICN', days: 85 },
  { market: 'ICN', days: 100 },
  { market: 'ICN', days: 365 },
  { market: 'ZYX', days: 120 },
  ...
]

// Same function...
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