import { Page, expect } from '@playwright/test'; import { uatConfig } from '../config/uat-config'; export class UATHelper { constructor(private page: Page) {} async waitForElement(selector: string, options?: { timeout?: number }) { await this.page.waitForSelector(selector, { timeout: options?.timeout || uatConfig.timeout, state: 'visible' }); } async waitForAPIResponse(urlPattern: string) { return this.page.waitForResponse(response => response.url().includes(urlPattern) ); } async waitForPageLoad() { await this.page.waitForLoadState('networkidle'); await this.page.waitForFunction(() => document.readyState === 'complete' ); } async takeScreenshot(name: string) { await this.page.screenshot({ path: `uat-tests/screenshots/${name}.png`, fullPage: true }); } async verifySuccessMessage(expectedMessage: string) { const message = await this.page.textContent('.el-message--success'); expect(message).toContain(expectedMessage); } async verifyErrorMessage(expectedMessage: string) { const message = await this.page.textContent('.el-message--error'); expect(message).toContain(expectedMessage); } }