mirror of
https://github.com/n8n-io/n8n.git
synced 2026-07-28 03:24:59 +02:00
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
71 lines
2.0 KiB
TypeScript
71 lines
2.0 KiB
TypeScript
import { expect, type Locator } from '@playwright/test';
|
|
|
|
import { BasePage } from './BasePage';
|
|
import { MessageBox } from './components/messageBoxLocators';
|
|
|
|
export class SettingsEnvironmentPage extends BasePage {
|
|
async goto(): Promise<void> {
|
|
await this.page.goto('/settings/environments');
|
|
}
|
|
|
|
getConnectButton(): Locator {
|
|
return this.page.getByTestId('source-control-connect-button');
|
|
}
|
|
|
|
getDisconnectButton(): Locator {
|
|
return this.page.getByTestId('source-control-disconnect-button');
|
|
}
|
|
|
|
getRepoUrlInput(): Locator {
|
|
return this.page.getByPlaceholder('git@github.com:user/repository.git');
|
|
}
|
|
|
|
getBranchSelect(): Locator {
|
|
return this.page.getByTestId('source-control-branch-select');
|
|
}
|
|
|
|
getSaveButton(): Locator {
|
|
return this.page.getByTestId('source-control-save-settings-button');
|
|
}
|
|
|
|
getRefreshSshKeyButton(): Locator {
|
|
return this.page.getByTestId('source-control-refresh-ssh-key-button');
|
|
}
|
|
|
|
async waitForConnectForm(): Promise<void> {
|
|
await expect(this.getRepoUrlInput()).toBeEditable();
|
|
await expect(this.getRefreshSshKeyButton()).toBeVisible();
|
|
}
|
|
|
|
async fillRepoUrl(url: string): Promise<void> {
|
|
await expect(this.getRepoUrlInput()).toBeEditable();
|
|
await this.getRepoUrlInput().fill(url);
|
|
await this.getRepoUrlInput().blur();
|
|
}
|
|
|
|
async selectBranch(branchName: string): Promise<void> {
|
|
await this.getBranchSelect().click();
|
|
await this.getVisiblePopoverOption(branchName).click();
|
|
}
|
|
|
|
async enableReadOnlyMode(): Promise<void> {
|
|
const checkbox = this.page.getByTestId('source-control-read-only-checkbox');
|
|
await checkbox.check();
|
|
}
|
|
|
|
async disableReadOnlyMode(): Promise<void> {
|
|
const checkbox = this.page.getByTestId('source-control-read-only-checkbox');
|
|
await checkbox.uncheck();
|
|
}
|
|
|
|
async disconnect(): Promise<void> {
|
|
await this.getDisconnectButton().click();
|
|
|
|
const confirmModal = this.page
|
|
.getByRole('dialog')
|
|
.filter({ hasText: 'Disconnect Git repository' });
|
|
await expect(confirmModal).toBeVisible();
|
|
await new MessageBox(confirmModal).confirmButton.click();
|
|
}
|
|
}
|