/// 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); }); }); }); });