cumulocity-cypress
Version:
Cypress commands for Cumulocity IoT
43 lines (42 loc) • 1.93 kB
TypeScript
import { C8yAuthOptions } from "./auth";
declare global {
namespace Cypress {
interface Chainable {
/**
* Login to Cumulocity.
*
* Uses env variables `C8Y_TOKEN` (preferred) or `C8Y_USERNAME` and `C8Y_PASSWORD` if no arguments or no
* auth options are passed. The logged in user will be stored in `C8Y_LOGGED_IN_USER`.
*
* Default values for login options:
* ```
* {
* disableGainsight: true,
* hideCookieBanner: true,
* useSession: true, // for Cypress 11+
* validationFn: () => {
* cy.getCookie('XSRF-TOKEN').should('exist');
* cy.getCookie('authorization').should('exist');
* }
* }
* ```
*
* @param {string} user - the user to login to Cumulocity
* @param {string} password - the password to login to Cumulocity
* @param {C8yLoginOptions} options - login options to use for login to Cumulocity
*/
login(options?: C8yLoginOptions): Chainable<void>;
login(user: string, options?: C8yLoginOptions): Chainable<void>;
login(user: string, password: string, options?: C8yLoginOptions): Chainable<void>;
login(auth: C8yAuthOptions, options?: C8yLoginOptions): Chainable<void>;
}
}
type C8yLoginOptions = {
useSession?: boolean;
disableGainsight?: boolean;
hideCookieBanner?: boolean;
validationFn?: () => boolean;
};
type C8yLoginAuthArgs = [options?: C8yLoginOptions] | [user: string, options?: C8yLoginOptions] | [user: string, password: string, options?: C8yLoginOptions] | [authOptions: C8yAuthOptions, options?: C8yLoginOptions];
}
export declare const defaultLoginOptions: () => C8yLoginOptions;