/// // *********************************************** // This example commands.js shows you how to // create various custom commands and overwrite // existing commands. // // For more comprehensive examples of custom // commands please read more here: // https://on.cypress.io/custom-commands // *********************************************** // // // -- This is a parent command -- // Cypress.Commands.add('login', (email, password) => { ... }) // // // -- This is a child command -- // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) // // // -- This is a dual command -- // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) // // // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) // eslint-disable-next-line @typescript-eslint/no-namespace declare namespace Cypress { interface Chainable { /** * Custom command to login into Atlas with a test membership. */ login(): Chainable /** * Custom command to make the polkadot api available and add accounts, memberships, etc.. to it. */ injectPolkadot(accounts: any[]): Chainable } } Cypress.Commands.add('injectPolkadot', (accounts = []) => { const enable = async () => { return { accounts: { get: () => new Promise((resolve) => resolve(accounts)), }, } } cy.window().then((window) => { window['injectedWeb3'] = { 'polkadot-js': { enable, version: '0.38.3', }, } }) }) Cypress.Commands.add('login', () => { cy.injectPolkadot(Cypress.env('accounts')) })