65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
/// <reference types="Cypress" />
|
|
|
|
context('Assertions', () => {
|
|
beforeEach(() => {
|
|
cy.visit('https://example.cypress.io/commands/assertions')
|
|
})
|
|
|
|
describe('Implicit Assertions', () => {
|
|
|
|
it('.should() - make an assertion about the current subject', () => {
|
|
// https://on.cypress.io/should
|
|
cy.get('.assertion-table')
|
|
.find('tbody tr:last').should('have.class', 'success')
|
|
})
|
|
|
|
it('.and() - chain multiple assertions together', () => {
|
|
// https://on.cypress.io/and
|
|
cy.get('.assertions-link')
|
|
.should('have.class', 'active')
|
|
.and('have.attr', 'href')
|
|
.and('include', 'cypress.io')
|
|
})
|
|
})
|
|
|
|
describe('Explicit Assertions', () => {
|
|
// https://on.cypress.io/assertions
|
|
it('expect - make an assertion about a specified subject', () => {
|
|
// We can use Chai's BDD style assertions
|
|
expect(true).to.be.true
|
|
|
|
// Pass a function to should that can have any number
|
|
// of explicit assertions within it.
|
|
cy.get('.assertions-p').find('p')
|
|
.should(($p) => {
|
|
// return an array of texts from all of the p's
|
|
// @ts-ignore TS6133 unused variable
|
|
const texts = $p.map((i, el) => // https://on.cypress.io/$
|
|
Cypress.$(el).text())
|
|
|
|
// jquery map returns jquery object
|
|
// and .get() convert this to simple array
|
|
const paragraphs = texts.get()
|
|
|
|
// array should have length of 3
|
|
expect(paragraphs).to.have.length(3)
|
|
|
|
// set this specific subject
|
|
expect(paragraphs).to.deep.eq([
|
|
'Some text from first p',
|
|
'More text from second p',
|
|
'And even more text from third p',
|
|
])
|
|
})
|
|
})
|
|
|
|
it('assert - assert shape of an object', () => {
|
|
const person = {
|
|
name: 'Joe',
|
|
age: 20,
|
|
}
|
|
assert.isObject(person, 'value is object')
|
|
})
|
|
})
|
|
})
|