This commit is contained in:
Daniil
2026-04-04 14:51:40 +03:00
parent 10a1d28f77
commit 0523ef3d72
191 changed files with 12065 additions and 2658 deletions
+91
View File
@@ -0,0 +1,91 @@
import path from "node:path"
import { test as base, type Locator, type Page } from "@playwright/test"
import {
createProjectViaApi,
deleteProjectViaApi,
loginAsAdmin,
} from "#tests/e2e/support/auth-api"
interface SilencePage {
page: Page
projectId: string
silenceStep: Locator
}
export const test = base.extend<{ silencePage: SilencePage }>({
silencePage: async ({ page }, use) => {
const tokens = await loginAsAdmin()
await page.context().addCookies([
{
name: "access_token",
value: tokens.accessToken,
domain: "localhost",
path: "/",
},
{
name: "refresh_token",
value: tokens.refreshToken,
domain: "localhost",
path: "/",
},
])
const suffix = Date.now().toString(36)
const projectId = await createProjectViaApi(
tokens.accessToken,
`silence-test-${suffix}`,
)
// Navigate to project wizard
await page.goto(`/projects/${projectId}`)
await page.locator("[data-testid='ProjectWizard']").waitFor()
// Upload test video file
const testVideoPath = path.resolve(
__dirname,
"../assets/test-video.mp4",
)
const fileInput = page
.locator("[data-testid='UploadStep']")
.locator("input[type='file']")
await fileInput.setInputFiles(testVideoPath)
// Wait for wizard to advance to Verify step
await page
.locator("[data-testid='VerifyStep']")
.waitFor({ timeout: 30_000 })
// Wait for file processing to complete
await page
.locator("[data-testid='VerifyStep']")
.getByText("Готово к обработке")
.waitFor({ timeout: 10_000 })
// Advance to Silence Settings step
await page
.getByRole("button", { name: "Далее: Настройки тишины" })
.click()
const silenceStep = page.locator("[data-testid='SilenceSettingsStep']")
await silenceStep.waitFor({ timeout: 10_000 })
const silencePage: SilencePage = {
page,
projectId,
silenceStep,
}
await use(silencePage)
// Cleanup: delete project
try {
await deleteProjectViaApi(tokens.accessToken, projectId)
} catch {
// Best-effort cleanup
}
},
})
export { expect } from "@playwright/test"