Files
n8n/packages/testing/playwright/pages/SignInPage.ts
T
alighasami 3d5eaf9445
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
first commit
2026-03-17 16:22:57 +03:30

59 lines
1.4 KiB
TypeScript

import type { Locator } from '@playwright/test';
import { BasePage } from './BasePage';
export class SignInPage extends BasePage {
getEmailField(): Locator {
return this.page.getByRole('textbox', { name: 'Email' });
}
getPasswordField(): Locator {
return this.page.getByRole('textbox', { name: 'Password' });
}
getSubmitButton(): Locator {
return this.page.getByRole('button', { name: 'Sign in' });
}
getSsoButton(): Locator {
return this.page.getByRole('button', { name: /continue with sso/i });
}
async goto(): Promise<void> {
await this.page.goto('/signin');
}
async fillEmail(email: string): Promise<void> {
await this.getEmailField().fill(email);
}
async fillPassword(password: string): Promise<void> {
await this.getPasswordField().fill(password);
}
async clickSubmit(): Promise<void> {
await this.getSubmitButton().click();
}
/**
* Complete login flow with email and password
* @param email - User email
* @param password - User password
* @param waitForWorkflow - Whether to wait for redirect to workflow page after login
*/
async loginWithEmailAndPassword(
email: string,
password: string,
waitForWorkflow = false,
): Promise<void> {
await this.goto();
await this.fillEmail(email);
await this.fillPassword(password);
await this.clickSubmit();
if (waitForWorkflow) {
await this.page.waitForURL(/workflows/);
}
}
}