declare global {
namespace Cypress {
interface Chainable<Subject> {
- login(): void;
+ login(username?: string, password?: string): void;
logToConsole(message: string, optional?: any): void;
text(): Chainable<string>;
+ ceph2Login(username?: string, password?: string): Chainable<any>;
checkAccessibility(subject: any, axeOptions?: any, skip?: boolean): void;
}
}
window.localStorage.setItem('sso', auth.sso);
};
-Cypress.Commands.add('login', () => {
- const username = Cypress.env('LOGIN_USER') || 'admin';
- const password = Cypress.env('LOGIN_PWD') || 'admin';
-
- if (auth === undefined) {
- cy.request({
- method: 'POST',
- url: 'api/auth',
- headers: { Accept: CdHelperClass.cdVersionHeader('1', '0') },
- body: { username: username, password: password }
- }).then((resp) => {
+Cypress.Commands.add('login', (username, password) => {
+ cy.session([username, password], () => {
+ requestAuth(username, password).then((resp) => {
auth = resp.body;
auth.permissions = JSON.stringify(new Permissions(auth.permissions));
auth.pwdExpirationDate = String(auth.pwdExpirationDate);
auth.sso = String(auth.sso);
fillAuth();
});
- } else {
- fillAuth();
- }
+ });
});
+Cypress.Commands.add('ceph2Login', (username, password) => {
+ const url: string = Cypress.env('CEPH2_URL');
+ cy.session([username, password, url], () => {
+ requestAuth(username, password, url).then((resp) => {
+ auth = resp.body;
+ auth.permissions = JSON.stringify(new Permissions(auth.permissions));
+ auth.pwdExpirationDate = String(auth.pwdExpirationDate);
+ auth.pwdUpdateRequired = String(auth.pwdUpdateRequired);
+ auth.sso = String(auth.sso);
+ const args = {
+ username: auth.username,
+ permissions: auth.permissions,
+ pwdExpirationDate: auth.pwdExpirationDate,
+ pwdUpdateRequired: auth.pwdUpdateRequired,
+ sso: auth.sso
+ };
+ // @ts-ignore
+ cy.origin(
+ url,
+ { args },
+ ({ uname, permissions, pwdExpirationDate, pwdUpdateRequired, sso }: any) => {
+ window.localStorage.setItem('dashboard_username', uname);
+ window.localStorage.setItem('dashboard_permissions', permissions);
+ window.localStorage.setItem('user_pwd_expiration_date', pwdExpirationDate);
+ window.localStorage.setItem('user_pwd_update_required', pwdUpdateRequired);
+ window.localStorage.setItem('sso', sso);
+ }
+ );
+ });
+ });
+});
+
+function requestAuth(username: string, password: string, url = '') {
+ username = username ? username : Cypress.env('LOGIN_USER');
+ password = password ? password : Cypress.env('LOGIN_PWD');
+ return cy.request({
+ method: 'POST',
+ url: !url ? 'api/auth' : `${url}api/auth`,
+ headers: { Accept: CdHelperClass.cdVersionHeader('1', '0') },
+ body: { username: username, password: password }
+ });
+}
+
// @ts-ignore
Cypress.Commands.add('text', { prevSubject: true }, (subject: any) => {
return subject.text();