/// context('Cypress.Commands', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) // https://on.cypress.io/custom-commands it('.add() - create a custom command', () => { Cypress.Commands.add('console', { prevSubject: true, }, (subject, method) => { // the previous subject is automatically received // and the commands arguments are shifted // allow us to change the console method used method = method || 'log' // log the subject to the console // @ts-ignore TS7017 console[method]('The subject is', subject) // whatever we return becomes the new subject // we don't want to change the subject so // we return whatever was passed in return subject }) // @ts-ignore TS2339 cy.get('button').console('info').then(($button) => { // subject is still $button }) }) }) context('Cypress.Cookies', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) // https://on.cypress.io/cookies it('.debug() - enable or disable debugging', () => { Cypress.Cookies.debug(true) // Cypress will now log in the console when // cookies are set or cleared cy.setCookie('fakeCookie', '123ABC') cy.clearCookie('fakeCookie') cy.setCookie('fakeCookie', '123ABC') cy.clearCookie('fakeCookie') cy.setCookie('fakeCookie', '123ABC') }) it('.preserveOnce() - preserve cookies by key', () => { // normally cookies are reset after each test cy.getCookie('fakeCookie').should('not.be.ok') // preserving a cookie will not clear it when // the next test starts cy.setCookie('lastCookie', '789XYZ') Cypress.Cookies.preserveOnce('lastCookie') }) it('.defaults() - set defaults for all cookies', () => { // now any cookie with the name 'session_id' will // not be cleared before each new test runs Cypress.Cookies.defaults({ preserve: 'session_id', }) }) }) context('Cypress.arch', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) it('Get CPU architecture name of underlying OS', () => { // https://on.cypress.io/arch expect(Cypress.arch).to.exist }) }) context('Cypress.config()', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) it('Get and set configuration options', () => { // https://on.cypress.io/config let myConfig = Cypress.config() expect(myConfig).to.have.property('animationDistanceThreshold', 5) expect(myConfig).to.have.property('baseUrl', null) expect(myConfig).to.have.property('defaultCommandTimeout', 4000) expect(myConfig).to.have.property('requestTimeout', 5000) expect(myConfig).to.have.property('responseTimeout', 30000) expect(myConfig).to.have.property('viewportHeight', 660) expect(myConfig).to.have.property('viewportWidth', 1000) expect(myConfig).to.have.property('pageLoadTimeout', 60000) expect(myConfig).to.have.property('waitForAnimations', true) expect(Cypress.config('pageLoadTimeout')).to.eq(60000) // this will change the config for the rest of your tests! Cypress.config('pageLoadTimeout', 20000) expect(Cypress.config('pageLoadTimeout')).to.eq(20000) Cypress.config('pageLoadTimeout', 60000) }) }) context('Cypress.dom', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) // https://on.cypress.io/dom it('.isHidden() - determine if a DOM element is hidden', () => { let hiddenP = Cypress.$('.dom-p p.hidden').get(0) let visibleP = Cypress.$('.dom-p p.visible').get(0) // our first paragraph has css class 'hidden' expect(Cypress.dom.isHidden(hiddenP)).to.be.true expect(Cypress.dom.isHidden(visibleP)).to.be.false }) }) context('Cypress.env()', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) // We can set environment variables for highly dynamic values // https://on.cypress.io/environment-variables it('Get environment variables', () => { // https://on.cypress.io/env // set multiple environment variables Cypress.env({ host: 'veronica.dev.local', api_server: 'http://localhost:8888/v1/', }) // get environment variable expect(Cypress.env('host')).to.eq('veronica.dev.local') // set environment variable Cypress.env('api_server', 'http://localhost:8888/v2/') expect(Cypress.env('api_server')).to.eq('http://localhost:8888/v2/') // get all environment variable expect(Cypress.env()).to.have.property('host', 'veronica.dev.local') expect(Cypress.env()).to.have.property('api_server', 'http://localhost:8888/v2/') }) }) context('Cypress.log', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) it('Control what is printed to the Command Log', () => { // https://on.cypress.io/cypress-log }) }) context('Cypress.platform', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) it('Get underlying OS name', () => { // https://on.cypress.io/platform expect(Cypress.platform).to.be.exist }) }) context('Cypress.version', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) it('Get current version of Cypress being run', () => { // https://on.cypress.io/version expect(Cypress.version).to.be.exist }) }) context('Cypress.spec', () => { beforeEach(() => { cy.visit('https://example.cypress.io/cypress-api') }) it('Get current spec information', () => { // https://on.cypress.io/spec // wrap the object so we can inspect it easily by clicking in the command log cy.wrap(Cypress.spec).should('include.keys', ['name', 'relative', 'absolute']) }) })