Merge pull request #1980 from kuba618/AUT-1119
test: add removed user invitation test
This commit is contained in:
@@ -7,6 +7,7 @@ const { UserInterfacePage } = require('./user-interface-page');
|
|||||||
const { LoginPage } = require('./login-page');
|
const { LoginPage } = require('./login-page');
|
||||||
const { AcceptInvitation } = require('./accept-invitation-page');
|
const { AcceptInvitation } = require('./accept-invitation-page');
|
||||||
const { adminFixtures } = require('./admin');
|
const { adminFixtures } = require('./admin');
|
||||||
|
const { AdminCreateUserPage } = require('./admin/create-user-page');
|
||||||
|
|
||||||
exports.test = test.extend({
|
exports.test = test.extend({
|
||||||
page: async ({ page }, use) => {
|
page: async ({ page }, use) => {
|
||||||
@@ -51,6 +52,11 @@ exports.publicTest = test.extend({
|
|||||||
acceptInvitationPage: async ({ page }, use) => {
|
acceptInvitationPage: async ({ page }, use) => {
|
||||||
const acceptInvitationPage = new AcceptInvitation(page);
|
const acceptInvitationPage = new AcceptInvitation(page);
|
||||||
await use(acceptInvitationPage);
|
await use(acceptInvitationPage);
|
||||||
|
},
|
||||||
|
|
||||||
|
adminCreateUserPage: async ({page}, use) => {
|
||||||
|
const adminCreateUserPage = new AdminCreateUserPage(page);
|
||||||
|
await use(adminCreateUserPage);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -1,9 +1,25 @@
|
|||||||
const { AdminCreateUserPage } = require('../../fixtures/admin/create-user-page');
|
|
||||||
const { publicTest, expect } = require('../../fixtures/index');
|
const { publicTest, expect } = require('../../fixtures/index');
|
||||||
const { client } = require('../../fixtures/postgres-client-config');
|
const { client } = require('../../fixtures/postgres-client-config');
|
||||||
const { DateTime } = require('luxon');
|
const { DateTime } = require('luxon');
|
||||||
|
|
||||||
publicTest.describe('Accept invitation page', () => {
|
publicTest.describe('Accept invitation page', () => {
|
||||||
|
publicTest('should not be able to set the password if token is empty', async ({ acceptInvitationPage }) => {
|
||||||
|
await acceptInvitationPage.open('');
|
||||||
|
await acceptInvitationPage.excpectSubmitButtonToBeDisabled();
|
||||||
|
await acceptInvitationPage.fillPasswordField('something');
|
||||||
|
await acceptInvitationPage.excpectSubmitButtonToBeDisabled();
|
||||||
|
});
|
||||||
|
|
||||||
|
publicTest('should not be able to set the password if token is not in db', async ({ acceptInvitationPage }) => {
|
||||||
|
await acceptInvitationPage.open('abc');
|
||||||
|
await acceptInvitationPage.acceptInvitation('something');
|
||||||
|
await acceptInvitationPage.expectAlertToBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
publicTest.describe('Accept invitation page - users', () => {
|
||||||
|
const expiredTokenDate = DateTime.now().minus({days: 3}).toISO();
|
||||||
|
const token = (Math.random() + 1).toString(36).substring(2);
|
||||||
|
|
||||||
publicTest.beforeAll(async () => {
|
publicTest.beforeAll(async () => {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
});
|
});
|
||||||
@@ -12,18 +28,7 @@ publicTest.describe('Accept invitation page', () => {
|
|||||||
await client.end();
|
await client.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
publicTest('should not be able to set the password if token is empty', async ({ acceptInvitationPage }) => {
|
publicTest('should not be able to set the password if token is expired', async ({ acceptInvitationPage, adminCreateUserPage }) => {
|
||||||
await acceptInvitationPage.open('');
|
|
||||||
await acceptInvitationPage.excpectSubmitButtonToBeDisabled();
|
|
||||||
await acceptInvitationPage.fillPasswordField('something');
|
|
||||||
await acceptInvitationPage.excpectSubmitButtonToBeDisabled();
|
|
||||||
});
|
|
||||||
|
|
||||||
publicTest('should not be able to set the password if token is expired', async ({ acceptInvitationPage, page }) => {
|
|
||||||
const expiredTokenDate = DateTime.now().minus({days: 3}).toISO();
|
|
||||||
const expiredToken = (Math.random() + 1).toString(36).substring(2);
|
|
||||||
|
|
||||||
const adminCreateUserPage = new AdminCreateUserPage(page);
|
|
||||||
adminCreateUserPage.seed(Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER));
|
adminCreateUserPage.seed(Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER));
|
||||||
const user = adminCreateUserPage.generateUser();
|
const user = adminCreateUserPage.generateUser();
|
||||||
|
|
||||||
@@ -38,7 +43,37 @@ publicTest.describe('Accept invitation page', () => {
|
|||||||
|
|
||||||
const insertUser = {
|
const insertUser = {
|
||||||
text: 'INSERT INTO users (email, full_name, role_id, status, invitation_token, invitation_token_sent_at) VALUES ($1, $2, $3, $4, $5, $6)',
|
text: 'INSERT INTO users (email, full_name, role_id, status, invitation_token, invitation_token_sent_at) VALUES ($1, $2, $3, $4, $5, $6)',
|
||||||
values: [user.email, user.fullName, queryRoleIdResult.rows[0].id, 'invited', expiredToken, expiredTokenDate],
|
values: [user.email, user.fullName, queryRoleIdResult.rows[0].id, 'invited', token, expiredTokenDate],
|
||||||
|
};
|
||||||
|
|
||||||
|
const insertUserResult = await client.query(insertUser);
|
||||||
|
expect(insertUserResult.rowCount).toBe(1);
|
||||||
|
expect(insertUserResult.command).toBe('INSERT');
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
await acceptInvitationPage.open(token);
|
||||||
|
await acceptInvitationPage.acceptInvitation('something');
|
||||||
|
await acceptInvitationPage.expectAlertToBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
publicTest('should not be able to accept invitation if user was soft deleted', async ({ acceptInvitationPage, adminCreateUserPage }) => {
|
||||||
|
const dateNow = DateTime.now().toISO();
|
||||||
|
const user = adminCreateUserPage.generateUser();
|
||||||
|
|
||||||
|
const queryRole = {
|
||||||
|
text: 'SELECT * FROM roles WHERE name = $1',
|
||||||
|
values: ['Admin']
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const queryRoleIdResult = await client.query(queryRole);
|
||||||
|
expect(queryRoleIdResult.rowCount).toEqual(1);
|
||||||
|
|
||||||
|
const insertUser = {
|
||||||
|
text: 'INSERT INTO users (email, full_name, deleted_at, role_id, status, invitation_token, invitation_token_sent_at) VALUES ($1, $2, $3, $4, $5, $6, $7)',
|
||||||
|
values: [user.email, user.fullName, dateNow, queryRoleIdResult.rows[0].id, 'invited', token, dateNow],
|
||||||
};
|
};
|
||||||
|
|
||||||
const insertUserResult = await client.query(insertUser);
|
const insertUserResult = await client.query(insertUser);
|
||||||
@@ -49,14 +84,9 @@ publicTest.describe('Accept invitation page', () => {
|
|||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
await acceptInvitationPage.open(expiredToken);
|
await acceptInvitationPage.open(token);
|
||||||
await acceptInvitationPage.acceptInvitation('something');
|
|
||||||
await acceptInvitationPage.expectAlertToBeVisible();
|
|
||||||
});
|
|
||||||
|
|
||||||
publicTest('should not be able to set the password if token is not in db', async ({ acceptInvitationPage }) => {
|
|
||||||
await acceptInvitationPage.open('abc');
|
|
||||||
await acceptInvitationPage.acceptInvitation('something');
|
await acceptInvitationPage.acceptInvitation('something');
|
||||||
await acceptInvitationPage.expectAlertToBeVisible();
|
await acceptInvitationPage.expectAlertToBeVisible();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
Reference in New Issue
Block a user