DocSpace-client/web/ASC.Web.Login/tests/action_tests.js
2021-12-21 15:59:11 +08:00

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');
});