Сравнить функцию datetime cypress

#cypress

#cypress

Вопрос:

У меня есть форма, в которой пользователю разрешено вводить диапазон дат, и на выходе будут получены результаты только для этой конкретной даты.

Я могу ввести дату в форму, используя функцию .type() . Однако я не уверен, как проверить, находятся ли результаты в пределах указанного диапазона.

Например, если введенная дата равна (’17/03/2019′) Я должен быть в состоянии проверить, находятся ли результаты в таблице в пределах диапазона, используя код, подобный этому,

 cy.get('.table')
  .should('not.contain','18/03/2019') // This is wrong 
  

Я хочу сравнить и посмотреть, получены ли результаты только между 17/03/2019 00:00:00 и 17/03/2019 11: 59:59.

Доступна ли эта функция в Cypress? Кто-нибудь может помочь, пожалуйста?

Спасибо, Индху.

Ответ №1:

Просто чтобы держать всех в курсе решения, поступившего на Cypress Gitter channel. Первоначально на вопрос ответил г-н Глеб Бахмутов

Эта проверка может быть выполнена с помощью Cypress.moment, где moment.js в библиотеке есть методы синтаксического анализа и сравнения даты и времени.

 // the time in the element should be between 3pm and 5pm
const start = Cypress.moment('3:00 PM', 'LT')
const end = Cypress.moment('5:00 PM', 'LT')

cy.get('.utility-moment .badge')
  .should(($el) => {
    // parse American time like "3:38 PM"
    const m = Cypress.moment($el.text().trim(), 'LT')

    // display hours   minutes   AM|PM
    const f = 'h:mm A'

    expect(m.isBetween(start, end),
      `${m.format(f)} should be between ${start.format(f)} and ${end.format(f)}`).to.be.true
  })  

Дополнение к соответствующему документу:https://github.com/cypress-io/cypress-example-kitchensink/pull/225