You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

96 lines
2.8 KiB

/// <reference types="cypress" />
context("Connectors", () => {
beforeEach(() => {
cy.visit("https://example.cypress.io/commands/connectors")
})
it(".each() - iterate over an array of elements", () => {
// https://on.cypress.io/each
cy.get(".connectors-each-ul>li").each(($el, index, $list) => {
console.log($el, index, $list)
})
})
it(".its() - get properties on the current subject", () => {
// https://on.cypress.io/its
cy.get(".connectors-its-ul>li")
// calls the 'length' property yielding that value
.its("length")
.should("be.gt", 2)
})
it(".invoke() - invoke a function on the current subject", () => {
// our div is hidden in our script.js
// $('.connectors-div').hide()
// https://on.cypress.io/invoke
cy.get(".connectors-div")
.should("be.hidden")
// call the jquery method 'show' on the 'div.container'
.invoke("show")
.should("be.visible")
})
it(".spread() - spread an array as individual args to callback function", () => {
// https://on.cypress.io/spread
const arr = ["foo", "bar", "baz"]
cy.wrap(arr).spread((foo, bar, baz) => {
expect(foo).to.eq("foo")
expect(bar).to.eq("bar")
expect(baz).to.eq("baz")
})
})
describe(".then()", () => {
it("invokes a callback function with the current subject", () => {
// https://on.cypress.io/then
cy.get(".connectors-list > li").then($lis => {
expect($lis, "3 items").to.have.length(3)
expect($lis.eq(0), "first item").to.contain("Walk the dog")
expect($lis.eq(1), "second item").to.contain("Feed the cat")
expect($lis.eq(2), "third item").to.contain("Write JavaScript")
})
})
it("yields the returned value to the next command", () => {
cy.wrap(1)
.then(num => {
expect(num).to.equal(1)
return 2
})
.then(num => {
expect(num).to.equal(2)
})
})
it("yields the original subject without return", () => {
cy.wrap(1)
.then(num => {
expect(num).to.equal(1)
// note that nothing is returned from this callback
})
.then(num => {
// this callback receives the original unchanged value 1
expect(num).to.equal(1)
})
})
it("yields the value yielded by the last Cypress command inside", () => {
cy.wrap(1)
.then(num => {
expect(num).to.equal(1)
// note how we run a Cypress command
// the result yielded by this Cypress command
// will be passed to the second ".then"
cy.wrap(2)
})
.then(num => {
// this callback receives the value yielded by "cy.wrap(2)"
expect(num).to.equal(2)
})
})
})
})