163 lines
3.5 KiB
JavaScript
163 lines
3.5 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
|
|
? `Login render on '${browser}' with '${deviceType}' dimension (model)`
|
|
: `Login render on '${browser}' with '${deviceType}' dimension`;
|
|
|
|
Feature(featureName);
|
|
|
|
// doing it before others scenario
|
|
Before(async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.settings, 'settings');
|
|
I.mockEndpoint(Endpoints.build, 'build');
|
|
I.mockEndpoint(Endpoints.providers, 'providers');
|
|
I.mockEndpoint(Endpoints.people, '');
|
|
I.amOnPage('/login');
|
|
I.wait(2);
|
|
});
|
|
|
|
Scenario('Login page components render test', async ({ I }) => {
|
|
I.see('Web Office');
|
|
I.seeElement({
|
|
react: 'TextInput',
|
|
props: {
|
|
id: 'login',
|
|
name: 'login',
|
|
type: 'email',
|
|
autoComplete: 'username',
|
|
},
|
|
});
|
|
I.seeElement({
|
|
react: 'PasswordInput',
|
|
props: {
|
|
id: 'password',
|
|
inputName: 'password',
|
|
type: 'password',
|
|
autoComplete: 'current-password',
|
|
},
|
|
});
|
|
I.seeElement({
|
|
react: 'Checkbox',
|
|
props: {
|
|
className: 'login-checkbox',
|
|
isChecked: false,
|
|
},
|
|
});
|
|
I.seeElement({
|
|
react: 'HelpButton',
|
|
props: {
|
|
className: 'login-tooltip',
|
|
},
|
|
});
|
|
I.seeElement({
|
|
react: 'Link',
|
|
props: {
|
|
className: 'login-link',
|
|
type: 'page',
|
|
},
|
|
});
|
|
I.seeElement({
|
|
react: 'Button',
|
|
props: {
|
|
className: 'login-button',
|
|
type: 'page',
|
|
},
|
|
});
|
|
|
|
I.see('Sign in with Facebook');
|
|
I.see('Sign in with Google');
|
|
I.see('Sign in with LinkedIn');
|
|
|
|
I.see('Register');
|
|
|
|
I.saveScreenshot(`1.login-page-render.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`1.login-page-render.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario('Reset mail tab render test', async ({ I }) => {
|
|
I.seeElement({
|
|
react: 'Link',
|
|
props: {
|
|
className: 'login-link',
|
|
type: 'page',
|
|
},
|
|
});
|
|
|
|
I.click('Forgot your password?');
|
|
|
|
I.see('Password recovery');
|
|
I.see(
|
|
'Please, enter the email you used for registration. The password recovery instructions will be sent to it.',
|
|
);
|
|
I.seeElement({
|
|
react: 'TextInput',
|
|
});
|
|
I.see('Send');
|
|
|
|
I.saveScreenshot(`2.reset-mail-tab.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`2.reset-mail-tab.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario('Registration tab render test', async ({ I }) => {
|
|
I.click({ react: 'Register' });
|
|
|
|
I.see('Registration request');
|
|
I.see(
|
|
'To register, enter your email and click Send request. An activation link will be sent to you.',
|
|
);
|
|
I.seeElement({
|
|
react: 'TextInput',
|
|
});
|
|
I.see('Send request');
|
|
|
|
I.saveScreenshot(`3.registration-mail-tab.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`3.registration-mail-tab.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario('Help button modal render test', async ({ I }) => {
|
|
I.seeElement({
|
|
react: 'HelpButton',
|
|
props: {
|
|
className: 'login-tooltip',
|
|
},
|
|
});
|
|
I.click({
|
|
react: 'HelpButton',
|
|
props: {
|
|
className: 'login-tooltip',
|
|
},
|
|
});
|
|
|
|
I.see(
|
|
'The default session lifetime is 20 minutes. Check this option to set it to 1 year. To set your own value, go to Settings',
|
|
);
|
|
|
|
I.saveScreenshot(`4.help-button-modal.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`4.help-button-modal.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|