#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