LingTropy/lingtropy-client/tests/testUtil.mts
2025-03-17 22:45:41 +08:00

41 lines
979 B
TypeScript

import { Page } from 'playwright'
import { TestInfo } from 'playwright/test'
export default class TestUtil {
_page: Page
_testInfo: TestInfo
_testScreenshotPath: string
constructor(page: Page, testInfo: TestInfo, testScreenshotPath: string) {
this._page = page
this._testInfo = testInfo
this._testScreenshotPath = testScreenshotPath
}
async captureScreenshot(pageInstance: Page, screenshotName: string) {
if (!pageInstance) {
return
}
try {
const screenshotPath = `${this._testScreenshotPath}/${screenshotName || `unknown_${Date.now()}`}.png`
await pageInstance.screenshot({ path: screenshotPath })
} catch (error) {
// Do nothing
}
}
async onTestError(error: Error) {
const titleLists = [...this._testInfo.titlePath]
titleLists.shift()
const title = titleLists.join('-')
await this.captureScreenshot(this._page, `${title}_${Date.now()}`)
return new Error(error.message)
}
}