Linden Crandall 5075f5c5d8
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
commit upstream files
2025-02-06 04:14:18 +09:00

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