| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | // ***********************************************// 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// ***********************************************//import 'cypress-wait-until';Cypress.Commands.add('randomString', (length) => {	var result           = '';	var characters       = 'ABCDEFGHIJK LMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';	var charactersLength = characters.length;	for (var i = 0; i < length; i++) {		result += characters.charAt(Math.floor(Math.random() * charactersLength));	}	return result;});/** * Check the swagger schema: * * @param {string}  method        API Method in swagger doc, "get", "put", "post", "delete" * @param {integer} code          Swagger doc endpoint response code, exactly as defined in swagger doc * @param {string}  path          Swagger doc endpoint path, exactly as defined in swagger doc * @param {*}       data          The API response data to check against the swagger schema */Cypress.Commands.add('validateSwaggerSchema', (method, code, path, data) => {	cy.task('validateSwaggerSchema', {		file:           Cypress.env('swaggerBase'),		endpoint:       path,		method:         method,		statusCode:     code,		responseSchema: data,		verbose:        true	}).should('equal', null);});Cypress.Commands.add('getToken', () => {	// login with existing user	cy.task('backendApiPost', {		path: '/api/tokens',		data: {			identity: '[email protected]',			secret:   'changeme'		}	}).then(res => {		cy.wrap(res.token);	});});// TODO: copied from v3, is this usable?Cypress.Commands.add('waitForCertificateStatus', (token, certID, expected, timeout = 60) => {	cy.log(`Waiting for certificate (${certID}) status (${expected}) timeout (${timeout})`);	cy.waitUntil(() => cy.task('backendApiGet', {		token: token,		path:  `/api/certificates/${certID}`	}).then((data) => {		return data.result.status === expected;	}), {		errorMsg: 'Waiting for certificate status failed',		timeout:  timeout * 1000,		interval: 5000	});});
 |