// *********************************************** // This example namespace declaration will help // with Intellisense and code completion in your // IDE or Text Editor. // *********************************************** // declare namespace Cypress { // interface Chainable { // customCommand(param: any): typeof customCommand; // } // } // // function customCommand(param: any): void { // console.warn(param); // } // // NOTE: You can use it like so: // Cypress.Commands.add('customCommand', customCommand); // // *********************************************** // 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) => { ... }) import 'cypress-wait-until'; import { PageIdleDetector } from './PageIdleDetector'; import { mockWebSocket } from './websocket'; Cypress.Commands.add('waitForSkeletonGone', () => { cy.waitUntil(() => { return Cypress.$('.skeleton-loader').length === 0; }, { verbose: true, description: "waitForSkeletonGone", errorMsg: "skeleton loaders never went away", timeout: 7000, interval: 50}); }); Cypress.Commands.add( "waitForPageIdle", () => { console.warn("Waiting for page idle state"); const pageIdleDetector = new PageIdleDetector(); pageIdleDetector.WaitForPageToBeIdle(); } ); Cypress.Commands.add('mockMempoolSocket', () => { mockWebSocket(); });