// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
///
// ***************************************************************
// Each command should be properly documented using JSDoc.
// See https://jsdoc.app/index.html for reference.
// Basic requirements for documentation are the following:
// - Meaningful description
// - Specific link to https://api.mattermost.com
// - Each parameter with `@params`
// - Return value with `@returns`
// - Example usage with `@example`
// Custom command should follow naming convention of having `api` prefix, e.g. `apiKeycloakGetAccessToken`.
// ***************************************************************
declare namespace Cypress {
interface Chainable {
/**
* Get access token from Keycloak
* See https://www.keycloak.org/documentation
* @returns {string} token
*
* @example
* cy.apiKeycloakGetAccessToken();
*/
apiKeycloakGetAccessToken(): Chainable;
/**
* Save realm to Keycloak
* See https://www.keycloak.org/documentation
* @param {string} options.accessToken - valid token to authorize a request
* @param {Boolean} options.failOnStatusCode - whether to fail on status code, default is true
* @returns {Response} response: Cypress-chainable response
*
* @example
* cy.apiKeycloakSaveRealm('access-token');
*/
apiKeycloakSaveRealm(accessToken: string, failOnStatusCode: boolean): Chainable;
/**
* Get realm from Keycloak
* See https://www.keycloak.org/documentation
* @param {string} options.accessToken - valid token to authorize a request
* @param {Boolean} options.failOnStatusCode - whether to fail on status code, default is true
* @returns {Response} response: Cypress-chainable response
*
* @example
* cy.apiKeycloakGetRealm('access-token');
*/
apiKeycloakGetRealm(accessToken: string, failOnStatusCode: boolean): Chainable;
/**
* Verify Keycloak is reachable and has realm setup
* See https://www.keycloak.org/documentation
* @returns {Response} response: Cypress-chainable response
*
* @example
* cy.apiRequireKeycloak();
*/
apiRequireKeycloak(): Chainable;
}
}