feat(console): MDC components (#6482)

mdc components

---------

Co-authored-by: Elio Bischof <eliobischof@gmail.com>
This commit is contained in:
Max Peintner
2023-10-26 10:29:06 +02:00
committed by GitHub
parent cb7b50b513
commit b099a26a16
412 changed files with 2711 additions and 2698 deletions

View File

@@ -26,16 +26,17 @@ describe('humans', () => {
});
it('should add a user', () => {
cy.get('[data-e2e="create-user-button"]').click();
cy.get('[data-e2e="create-user-button"]').should('be.visible').click();
cy.url().should('contain', 'users/create');
cy.get('[formcontrolname="email"]').type('dummy@dummy.com');
//force needed due to the prefilled username prefix
cy.get('[formcontrolname="userName"]').type(user.addName);
cy.get('[formcontrolname="firstName"]').type('e2ehumanfirstname');
cy.get('[formcontrolname="lastName"]').type('e2ehumanlastname');
cy.get('mat-select[data-cy="country-calling-code"]').click().get('mat-option').contains('Switzerland').click();
cy.get('mat-select[data-cy="country-calling-code"]').click();
cy.contains('mat-option', 'Switzerland').scrollIntoView().click();
cy.get('[formcontrolname="phone"]').type('123456789');
cy.get('[data-e2e="create-button"]').click();
cy.get('[data-e2e="create-button"]').click({ force: true });
cy.shouldConfirmSuccess();
let loginName = user.addName;
if (user.mustBeDomain) {

View File

@@ -26,7 +26,7 @@ describe('machines', () => {
});
it('should add a machine', () => {
cy.get('[data-e2e="create-user-button"]').click();
cy.get('[data-e2e="create-user-button"]').should('be.visible').click();
cy.url().should('contain', 'users/create-machine');
//force needed due to the prefilled username prefix
cy.get('[formcontrolname="userName"]').type(machine.addName);

View File

@@ -0,0 +1,31 @@
export function authenticate(
loginUrl: string,
creds: {
password: any;
username: string;
},
onUsernameScreen: () => void,
onPasswordScreen: () => void,
onAuthenticated: () => void,
) {
onUsernameScreen ? onUsernameScreen() : null;
cy.get('#loginName').type(creds.username);
cy.get('#submit-button').click();
onPasswordScreen ? onPasswordScreen() : null;
cy.get('#password').type(creds.password);
cy.get('#submit-button').click();
cy.wait('@password').then((interception) => {
if (interception.response.body.indexOf(`${loginUrl}/mfa/prompt`) === -1) {
return;
}
cy.contains('button', 'skip').click();
});
cy.wait('@token');
onAuthenticated ? onAuthenticated() : null;
cy.wait(1000);
}

View File

@@ -1,3 +1,5 @@
import { authenticate as authenticateOnBaseUrl } from './authenticate';
export enum User {
OrgOwner = 'org_owner',
OrgOwnerViewer = 'org_owner_viewer',
@@ -39,18 +41,10 @@ export function login(
},
);
let userToken: string;
cy.intercept(
{
method: 'POST',
url: `${issuerUrl}/token`,
},
(req) => {
req.continue((res) => {
userToken = res.body['access_token'];
});
},
).as('token');
cy.intercept({
method: 'POST',
url: `${issuerUrl}/token`,
}).as('token');
cy.intercept({
method: 'POST',
@@ -60,29 +54,30 @@ export function login(
cy.visit(Cypress.config('baseUrl'), { retryOnNetworkFailure: true });
onUsernameScreen ? onUsernameScreen() : null;
cy.get('#loginName').type(creds.username);
cy.get('#submit-button').click();
const backendUrl = Cypress.env('BACKEND_URL');
onPasswordScreen ? onPasswordScreen() : null;
cy.get('#password').type(creds.password);
cy.get('#submit-button').click();
cy.wait('@password').then((interception) => {
if (interception.response.body.indexOf(`${loginUrl}/mfa/prompt`) === -1) {
return;
}
cy.contains('button', 'skip').click();
});
cy.wait('@token').then(() => {
cy.task('safetoken', { key: creds.username, token: userToken });
});
onAuthenticated ? onAuthenticated() : null;
cy.wait(1000);
if (Cypress.config('baseUrl').startsWith(backendUrl)) {
authenticateOnBaseUrl(loginUrl, creds, onUsernameScreen, onPasswordScreen, onAuthenticated);
cy.get('@token')
.its('response.body.access_token')
.then((token) => {
cy.task('safetoken', { key: creds.username, token: token });
});
} else {
cy.origin(
backendUrl,
{ args: { loginUrl, creds, onUsernameScreen, onPasswordScreen, onAuthenticated } },
({ loginUrl, creds, onUsernameScreen, onPasswordScreen, onAuthenticated }) => {
const authenticateOnBackendUrl = Cypress.require('./authenticate');
authenticateOnBackendUrl.authenticate(loginUrl, creds, onUsernameScreen, onPasswordScreen, onAuthenticated);
},
);
cy.get('@token')
.its('response.body.access_token')
.then((token) => {
cy.task('safetoken', { key: creds.username, token: token });
});
}
cy.visit('/');