Some checks are pending
Automatisch Backend Tests / test (push) Waiting to run
Automatisch CI / linter (push) Waiting to run
Automatisch CI / start-backend-server (push) Waiting to run
Automatisch CI / start-backend-worker (push) Waiting to run
Automatisch CI / build-web (push) Waiting to run
Automatisch UI Tests / test (push) Waiting to run
66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
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);
|
|
this.addConnectionButton = page.getByTestId('add-connection-button');
|
|
this.connectionsTab = page.getByTestId('connections-tab');
|
|
this.flowsTab = page.getByTestId('flows-tab');
|
|
this.connectionRows = page.getByTestId('connection-row');
|
|
this.flowRows = page.getByTestId('flow-row');
|
|
this.firstConnectionButton = page.getByTestId('connections-no-results');
|
|
this.firstFlowButton = page.getByTestId('flows-no-results');
|
|
this.addConnectionModal = new AddGithubConnectionModal(page);
|
|
}
|
|
|
|
async goto () {
|
|
await this.page.goto('/app/github/connections');
|
|
}
|
|
|
|
async openConnectionModal () {
|
|
await this.addConnectionButton.click();
|
|
await expect(this.addConnectionButton.modal).toBeVisible();
|
|
return this.addConnectionModal;
|
|
}
|
|
|
|
async flowsVisible () {
|
|
return this.page.url() === await this.flowsTab.getAttribute('href');
|
|
}
|
|
|
|
async connectionsVisible () {
|
|
return this.page.url() === await this.connectionsTab.getAttribute('href');
|
|
}
|
|
|
|
async hasFlows () {
|
|
if (!(await this.flowsVisible())) {
|
|
await this.flowsTab.click();
|
|
await expect(this.flowsTab).toBeVisible();
|
|
}
|
|
return await this.flowRows.count() > 0;
|
|
}
|
|
|
|
async hasConnections () {
|
|
if (!(await this.connectionsVisible())) {
|
|
await this.connectionsTab.click();
|
|
await expect(this.connectionsTab).toBeVisible();
|
|
}
|
|
return await this.connectionRows.count() > 0;
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {import('@playwright/test').Page} page
|
|
*/
|
|
export async function initGithubConnection (page) {
|
|
// assumes already logged in
|
|
const githubPage = new GithubPage(page);
|
|
await githubPage.goto();
|
|
const modal = await githubPage.openConnectionModal();
|
|
await modal.inputForm();
|
|
const popup = await modal.submit();
|
|
await modal.handlePopup(popup);
|
|
} |