97 lines
2.2 KiB
JavaScript
97 lines
2.2 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 actions on '${browser}' with '${deviceType}' dimension (model)`
|
|
: `Login actions 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('Checkbox click test', async ({ I }) => {
|
|
I.seeElement({
|
|
react: 'Checkbox',
|
|
props: {
|
|
className: 'login-checkbox',
|
|
isChecked: false,
|
|
},
|
|
});
|
|
|
|
I.click({ react: 'Checkbox' });
|
|
|
|
I.seeElement({
|
|
react: 'Checkbox',
|
|
props: {
|
|
className: 'login-checkbox',
|
|
isChecked: true,
|
|
},
|
|
});
|
|
|
|
I.saveScreenshot(`5.checked-checkbox.png`);
|
|
if (!isModel) {
|
|
I.seeVisualDiff(`5.checked-checkbox.png`, {
|
|
tolerance: 1,
|
|
prepareBaseImage: false,
|
|
});
|
|
}
|
|
});
|
|
|
|
Scenario('Test login error', async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.auth, 'authError');
|
|
I.click({
|
|
react: 'Button',
|
|
props: {
|
|
className: 'login-button',
|
|
type: 'page',
|
|
},
|
|
});
|
|
I.see('Required field');
|
|
I.fillField('login', 'test@mail.ru');
|
|
I.click({
|
|
react: 'Button',
|
|
props: {
|
|
className: 'login-button',
|
|
type: 'page',
|
|
},
|
|
});
|
|
I.see('Required field');
|
|
I.fillField('password', secret('0000000'));
|
|
I.click({
|
|
react: 'Button',
|
|
props: {
|
|
className: 'login-button',
|
|
type: 'page',
|
|
},
|
|
});
|
|
I.see('User authentication failed');
|
|
});
|
|
|
|
Scenario('Test login success', async ({ I }) => {
|
|
I.mockEndpoint(Endpoints.people, 'self');
|
|
I.mockEndpoint(Endpoints.modules, 'info');
|
|
I.mockEndpoint(Endpoints.auth, 'authSuccess');
|
|
I.fillField('login', 'test@mail.ru');
|
|
I.fillField('password', secret('12345678'));
|
|
I.click({
|
|
react: 'Button',
|
|
props: {
|
|
className: 'login-button',
|
|
type: 'page',
|
|
},
|
|
});
|
|
I.see('Documents');
|
|
});
|