]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/cypress/support/commands.ts
import quincy beta 17.1.0
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / cypress / support / commands.ts
1 declare global {
2 namespace Cypress {
3 interface Chainable<Subject> {
4 login(): void;
5 text(): Chainable<string>;
6 }
7 }
8 }
9
10 import { CdHelperClass } from '~/app/shared/classes/cd-helper.class';
11 import { Permissions } from '~/app/shared/models/permissions';
12
13 let auth: any;
14
15 const fillAuth = () => {
16 window.localStorage.setItem('dashboard_username', auth.username);
17 window.localStorage.setItem('dashboard_permissions', auth.permissions);
18 window.localStorage.setItem('user_pwd_expiration_date', auth.pwdExpirationDate);
19 window.localStorage.setItem('user_pwd_update_required', auth.pwdUpdateRequired);
20 window.localStorage.setItem('sso', auth.sso);
21 };
22
23 Cypress.Commands.add('login', () => {
24 const username = Cypress.env('LOGIN_USER') || 'admin';
25 const password = Cypress.env('LOGIN_PWD') || 'admin';
26
27 if (auth === undefined) {
28 cy.request({
29 method: 'POST',
30 url: 'api/auth',
31 headers: { Accept: CdHelperClass.cdVersionHeader('1', '0') },
32 body: { username: username, password: password }
33 }).then((resp) => {
34 auth = resp.body;
35 auth.permissions = JSON.stringify(new Permissions(auth.permissions));
36 auth.pwdExpirationDate = String(auth.pwdExpirationDate);
37 auth.pwdUpdateRequired = String(auth.pwdUpdateRequired);
38 auth.sso = String(auth.sso);
39 fillAuth();
40 });
41 } else {
42 fillAuth();
43 }
44 });
45
46 // @ts-ignore
47 Cypress.Commands.add('text', { prevSubject: true }, (subject) => {
48 return subject.text();
49 });