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

@@ -14,6 +14,6 @@ export class DeleteUserModal {
async close () {
await this.page.click('body', {
position: { x: 10, y: 10 }
})
});
}
}

View File

@@ -1,4 +1,4 @@
const { AdminCreateRolePage } = require('./create-role-page')
const { AdminCreateRolePage } = require('./create-role-page');
export class AdminEditRolePage extends AdminCreateRolePage {
constructor (page) {

View File

@@ -23,6 +23,7 @@ export class AdminEditUserPage extends AuthenticatedPage {
*/
async waitForLoad(fullName) {
return await this.page.waitForFunction((fullName) => {
// eslint-disable-next-line no-undef
const el = document.querySelector("[data-test='full-name-input']");
return el && el.value === fullName;
}, fullName);

View File

@@ -25,5 +25,5 @@ export const adminFixtures = {
adminCreateRolePage: async ({ page}, use) => {
await use(new AdminCreateRolePage(page));
},
}
};

View File

@@ -87,6 +87,7 @@ export class AdminUsersPage extends AuthenticatedPage {
await this.firstPageButton.click();
}
// eslint-disable-next-line no-constant-condition
while (true) {
if (await this.usersLoader.isVisible()) {
await this.usersLoader.waitFor({
@@ -108,6 +109,7 @@ export class AdminUsersPage extends AuthenticatedPage {
async getTotalRows() {
return await this.page.evaluate(() => {
// eslint-disable-next-line no-undef
const node = document.querySelector('[data-total-count]');
if (node) {
const count = Number(node.dataset.totalCount);
@@ -121,6 +123,7 @@ export class AdminUsersPage extends AuthenticatedPage {
async getRowsPerPage() {
return await this.page.evaluate(() => {
// eslint-disable-next-line no-undef
const node = document.querySelector('[data-rows-per-page]');
if (node) {
const count = Number(node.dataset.rowsPerPage);

View File

@@ -25,7 +25,7 @@ export class ApplicationsModal extends BasePage {
if (this.applications[link] === undefined) {
throw {
message: `Unknown link "${link}" passed to ApplicationsModal.selectLink`
}
};
}
await this.searchInput.fill(link);
await this.appListItem.first().click();

View File

@@ -1,10 +1,11 @@
const { BasePage } = require('../../base-page');
const { AddGithubConnectionModal } = require('./add-github-connection-modal');
const { expect } = require('@playwright/test');
export class GithubPage extends BasePage {
constructor (page) {
super(page)
super(page);
this.addConnectionButton = page.getByTestId('add-connection-button');
this.connectionsTab = page.getByTestId('connections-tab');
this.flowsTab = page.getByTestId('flows-tab');
@@ -38,7 +39,7 @@ export class GithubPage extends BasePage {
await this.flowsTab.click();
await expect(this.flowsTab).toBeVisible();
}
return await this.flowRows.count() > 0
return await this.flowRows.count() > 0;
}
async hasConnections () {

View File

@@ -1,4 +1,5 @@
const { BasePage } = require('../../base-page');
const { expect } = require('@playwright/test');
export class GithubPopup extends BasePage {
@@ -11,7 +12,7 @@ export class GithubPopup extends BasePage {
}
getPathname () {
const url = this.page.url()
const url = this.page.url();
try {
return new URL(url).pathname;
} catch (e) {
@@ -34,17 +35,17 @@ export class GithubPopup extends BasePage {
loginInput.click();
await loginInput.fill(process.env.GITHUB_USERNAME);
const passwordInput = this.page.getByLabel('Password');
passwordInput.click()
passwordInput.click();
await passwordInput.fill(process.env.GITHUB_PASSWORD);
await this.page.getByRole('button', { name: 'Sign in' }).click();
// await this.page.waitForTimeout(2000);
if (this.page.isClosed()) {
return
return;
}
// await this.page.waitForLoadState('networkidle', 30000);
this.page.waitForEvent('load');
if (this.page.isClosed()) {
return
return;
}
await this.page.waitForURL(function (url) {
const u = new URL(url);
@@ -55,7 +56,7 @@ export class GithubPopup extends BasePage {
}
async handleAuthorize () {
if (this.page.isClosed()) { return }
if (this.page.isClosed()) { return; }
const authorizeButton = this.page.getByRole(
'button',
{ name: 'Authorize' }
@@ -69,7 +70,7 @@ export class GithubPopup extends BasePage {
) && (
u.searchParams.get('client_id') === null
);
})
});
const passwordInput = this.page.getByLabel('Password');
if (await passwordInput.isVisible()) {
await passwordInput.fill(process.env.GITHUB_PASSWORD);
@@ -87,6 +88,6 @@ export class GithubPopup extends BasePage {
};
}
}
await this.page.waitForEvent('close')
await this.page.waitForEvent('close');
}
}

View File

@@ -1,7 +1,4 @@
const path = require('node:path');
const { expect } = require('@playwright/test');
const { BasePage } = require('./base-page');
const { LoginPage } = require('./login-page');
export class AuthenticatedPage extends BasePage {
/**

View File

@@ -1,4 +1,3 @@
const path = require('node:path');
const { AuthenticatedPage } = require('./authenticated-page');
export class ConnectionsPage extends AuthenticatedPage {

View File

@@ -1,4 +1,3 @@
const path = require('node:path');
const { AuthenticatedPage } = require('./authenticated-page');
export class ExecutionsPage extends AuthenticatedPage {

View File

@@ -1,4 +1,3 @@
const path = require('node:path');
const { AuthenticatedPage } = require('./authenticated-page');
export class FlowEditorPage extends AuthenticatedPage {

View File

@@ -8,6 +8,7 @@ const { LoginPage } = require('./login-page');
const { AcceptInvitation } = require('./accept-invitation-page');
const { adminFixtures } = require('./admin');
const { AdminSetupPage } = require('./admin-setup-page');
const { AdminCreateUserPage } = require('./admin/create-user-page');
exports.test = test.extend({
page: async ({ page }, use) => {
@@ -58,6 +59,11 @@ exports.publicTest = test.extend({
const adminSetupPage = new AdminSetupPage(page);
await use(adminSetupPage);
},
adminCreateUserPage: async ({page}, use) => {
const adminCreateUserPage = new AdminCreateUserPage(page);
await use(adminCreateUserPage);
}
});
expect.extend({

View File

@@ -1,11 +1,11 @@
const { Client } = require('pg');
const client = new Client({
host: process.env.POSTGRES_HOST,
user: process.env.POSTGRES_USERNAME,
port: process.env.POSTGRES_PORT,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DATABASE
host: process.env.POSTGRES_HOST,
user: process.env.POSTGRES_USERNAME,
port: process.env.POSTGRES_PORT,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DATABASE
});
exports.client = client;

View File

@@ -1,4 +1,3 @@
const path = require('node:path');
const { AuthenticatedPage } = require('./authenticated-page');
export class UserInterfacePage extends AuthenticatedPage {