284 lines
6.1 KiB
JavaScript
284 lines
6.1 KiB
JavaScript
const Endpoints = require("./mocking/endpoints.js");
|
|
|
|
const browser = process.env.profile || "chromium";
|
|
const deviceType = process.env.DEVICE_TYPE || "desktop";
|
|
|
|
const isModel = !!process.env.MODEL;
|
|
|
|
const featureName = isModel
|
|
? `Client render on '${browser}' with '${deviceType}' dimension (model)`
|
|
: `Client render on '${browser}' with '${deviceType}' dimension`;
|
|
|
|
Feature(featureName);
|
|
|
|
Scenario("TfaAuth page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.amOnPage("/confirm/TfaAuth");
|
|
|
|
I.see("Enter code from authentication app");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
id: "code",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
});
|
|
|
|
I.saveScreenshot(`1.tfa-auth.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`1.tfa-auth.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("Profile Remove page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.amOnPage("/confirm/ProfileRemove");
|
|
|
|
I.see("Web Office");
|
|
I.see("Attention! You are about to delete your account.");
|
|
I.see('By clicking "Delete my account" you agree with our Privacy policy.');
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
});
|
|
|
|
I.saveScreenshot(`2.profile-remove.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`2.profile-remove.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("Change phone page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.amOnPage("/confirm/PhoneActivation");
|
|
|
|
I.see("Enter mobile phone number");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
});
|
|
|
|
I.saveScreenshot(`3.change-phone.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`3.change-phone.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("Create user page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.user, "user");
|
|
I.mockEndpoint(Endpoints.providers, "providers");
|
|
I.mockEndpoint(Endpoints.capabilities, "capabilities");
|
|
|
|
I.amOnPage("/confirm/LinkInvite?type=LinkInvite&key=KEY&uid=user&emplType=1");
|
|
|
|
I.see("Web Office");
|
|
|
|
I.seeElement({
|
|
react: "SocialButton",
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "EmailInput",
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
name: "first-name",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
name: "last-name",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "PasswordInput",
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
});
|
|
|
|
I.saveScreenshot(`4.create-user.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`4.create-user.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("Change owner page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
|
|
I.amOnPage("/confirm/PortalOwnerChange");
|
|
|
|
I.see("Web Office");
|
|
I.see("Please confirm that you want to change portal owner");
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
className: "owner-button owner-buttons",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
className: "owner-buttons",
|
|
},
|
|
});
|
|
|
|
I.saveScreenshot(`5.change-owner.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`5.change-owner.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("Activate user page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.build, "build");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.providers, "providers");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
|
|
I.amOnPage("/confirm/Activation");
|
|
|
|
I.see("Web Office");
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
className: "confirm-row",
|
|
id: "name",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
className: "confirm-row",
|
|
id: "surname",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "PasswordInput",
|
|
props: {
|
|
className: "confirm-row",
|
|
id: "password",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
className: "confirm-row",
|
|
},
|
|
});
|
|
|
|
I.saveScreenshot(`6.activate-user.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`6.activate-user.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("Change password page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, "settings");
|
|
I.mockEndpoint(Endpoints.password, "password");
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
|
|
I.amOnPage("/confirm/PasswordChange");
|
|
|
|
I.see("Web Office");
|
|
I.see("Now you can create a new password");
|
|
|
|
I.seeElement({
|
|
react: "PasswordInput",
|
|
props: {
|
|
className: "password-input",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
props: {
|
|
className: "password-button",
|
|
},
|
|
});
|
|
|
|
I.saveScreenshot(`7.change-password.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`7.change-password.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario("TfaActivation page render test", async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.confirm, "confirm");
|
|
I.mockEndpoint(Endpoints.setup, "setup");
|
|
I.amOnPage("/confirm/TfaActivation");
|
|
|
|
I.see("Configure your authenticator application");
|
|
I.see(
|
|
"To connect the app, scan the QR code or manually enter your secret key KRWVMTLBNVDGWZCG, and then enter a 6-digit code from your app in the field below."
|
|
);
|
|
|
|
I.seeElement({
|
|
react: "TextInput",
|
|
props: {
|
|
name: "code",
|
|
},
|
|
});
|
|
|
|
I.seeElement({
|
|
react: "Button",
|
|
});
|
|
|
|
I.saveScreenshot(`8.tfa-activation.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`8.tfa-activation.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|