Merge remote-tracking branch 'upstream/main' into AUT-1115

This commit is contained in:
Jakub P.
2024-07-22 16:32:09 +02:00
56 changed files with 500 additions and 252 deletions

View File

@@ -17,7 +17,6 @@ test.describe('Role management page', () => {
adminCreateRolePage,
adminEditRolePage,
adminRolesPage,
page,
}) => {
await test.step('Create a new role', async () => {
await adminRolesPage.navigateTo();
@@ -126,12 +125,14 @@ test.describe('Role management page', () => {
await adminCreateRolePage.isMounted();
const initScrollTop = await page.evaluate(() => {
// eslint-disable-next-line no-undef
return document.documentElement.scrollTop;
});
await page.mouse.move(400, 100);
await page.mouse.click(400, 100);
await page.mouse.wheel(200, 0);
const updatedScrollTop = await page.evaluate(() => {
// eslint-disable-next-line no-undef
return document.documentElement.scrollTop;
});
await expect(initScrollTop).not.toBe(updatedScrollTop);
@@ -144,11 +145,13 @@ test.describe('Role management page', () => {
await adminEditRolePage.isMounted();
const initScrollTop = await page.evaluate(() => {
// eslint-disable-next-line no-undef
return document.documentElement.scrollTop;
});
await page.mouse.move(400, 100);
await page.mouse.wheel(200, 0);
const updatedScrollTop = await page.evaluate(() => {
// eslint-disable-next-line no-undef
return document.documentElement.scrollTop;
});
await expect(initScrollTop).not.toBe(updatedScrollTop);
@@ -165,7 +168,6 @@ test.describe('Role management page', () => {
adminUsersPage,
adminCreateUserPage,
adminEditUserPage,
page,
}) => {
await adminRolesPage.navigateTo();
await test.step('Create a new role', async () => {
@@ -270,7 +272,6 @@ test.describe('Role management page', () => {
adminRolesPage,
adminUsersPage,
adminCreateUserPage,
page,
}) => {
await adminRolesPage.navigateTo();
await test.step('Create a new role', async () => {
@@ -429,6 +430,7 @@ test('Accessibility of role management page', async ({
await page.goto(url);
await page.waitForTimeout(750);
const isUnmounted = await page.evaluate(() => {
// eslint-disable-next-line no-undef
const root = document.querySelector('#root');
if (root) {

View File

@@ -98,7 +98,7 @@ test.describe('User management page', () => {
await expect(userRow).not.toBeVisible(false);
}
);
});
});
test(
'Creating a user which has been deleted',

View File

@@ -51,7 +51,7 @@ test(
const subjects = ['Connection', 'Execution', 'Flow'];
for (let subject of subjects) {
const row = adminCreateRolePage.getSubjectRow(subject)
const row = adminCreateRolePage.getSubjectRow(subject);
const modal = adminCreateRolePage.getRoleConditionsModal(subject);
await adminCreateRolePage.clickPermissionSettings(row);
await expect(modal.modal).toBeVisible();

View File

@@ -2,7 +2,7 @@ const { test, expect } = require('../../fixtures/index');
// no execution data exists in an empty account
test.describe.skip('Executions page', () => {
test.beforeEach(async ({ page, executionsPage }) => {
test.beforeEach(async ({ page }) => {
await page.getByTestId('executions-page-drawer-link').click();
await page.getByTestId('execution-row').first().click();

View File

@@ -6,7 +6,7 @@ test('Ensure creating a new flow works', async ({ page }) => {
await expect(page).toHaveURL(
/\/editor\/[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}/
);
})
});
test(
'Create a new flow with a Scheduler step then an Ntfy step',

View File

@@ -1,17 +1,8 @@
const { AdminCreateUserPage } = require('../../fixtures/admin/create-user-page');
const { publicTest, expect } = require('../../fixtures/index');
const { client } = require('../../fixtures/postgres-client-config');
const { DateTime } = require('luxon');
publicTest.describe('Accept invitation page', () => {
publicTest.beforeAll(async () => {
await client.connect();
});
publicTest.afterAll(async () => {
await client.end();
});
publicTest('should not be able to set the password if token is empty', async ({ acceptInvitationPage }) => {
await acceptInvitationPage.open('');
await acceptInvitationPage.excpectSubmitButtonToBeDisabled();
@@ -19,44 +10,83 @@ publicTest.describe('Accept invitation page', () => {
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));
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, 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],
};
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(expiredToken);
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.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 () => {
await client.connect();
});
publicTest.afterAll(async () => {
await client.end();
});
publicTest('should not be able to set the password if token is expired', async ({ acceptInvitationPage, adminCreateUserPage }) => {
adminCreateUserPage.seed(Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER));
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, 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', 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);
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();
});
});
});