n8n/cypress/support/index.ts
OlegIvaniv e88232ede2
test: Address flaky setup e2e (no-changelog) (#6085)
* test: Add /setup intercept for `skipSetup` command (no-changelog)

* Drop all tables for e2e reset, intercept account setup request

* Fix linting issues

* Allow to skip setup account request intercept and linting fixes

* Make sure variables are loaded

* Use PATCH for enabling of e2e features

* Do not exclude migration table from truncation

* Add user sign-up intercept
2023-05-03 14:06:06 +02:00

58 lines
1.6 KiB
TypeScript

// Load type definitions that come with Cypress module
/// <reference types="cypress" />
import { Interception } from 'cypress/types/net-stubbing';
interface SigninPayload {
email: string;
password: string;
}
interface SetupPayload {
email: string;
password: string;
firstName: string;
lastName: string;
}
interface SignupPayload extends SetupPayload {
url: string;
}
interface InviteUsersPayload {
instanceOwner: SigninPayload;
users: SetupPayload[];
}
declare global {
namespace Cypress {
interface Chainable {
getByTestId(
selector: string,
...args: (Partial<Loggable & Timeoutable & Withinable & Shadow> | undefined)[]
): Chainable<JQuery<HTMLElement>>;
findChildByTestId(childTestId: string): Chainable<JQuery<HTMLElement>>;
createFixtureWorkflow(fixtureKey: string, workflowName: string): void;
signin(payload: SigninPayload): void;
signout(): void;
signup(payload: SignupPayload): void;
setup(payload: SetupPayload, skipIntercept?: boolean): void;
setupOwner(payload: SetupPayload): void;
inviteUsers(payload: InviteUsersPayload): void;
interceptREST(method: string, url: string): Chainable<Interception>;
skipSetup(): void;
resetAll(): void;
enableFeature(feature: string): void;
disableFeature(feature: string): void;
waitForLoad(waitForIntercepts?: boolean): void;
grantBrowserPermissions(...permissions: string[]): void;
readClipboard(): Chainable<string>;
paste(pastePayload: string): void;
drag(selector: string, target: [number, number], options?: {abs?: true, index?: number}): void;
draganddrop(draggableSelector: string, droppableSelector: string): void;
}
}
}
export {};