dify/e2e/features/step-definitions/apps/switch-app-mode.steps.ts
Jingyi f5e9b02565
test: add API seeding infrastructure and app creation E2E scenarios (#35276)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 06:31:54 +00:00

29 lines
1.0 KiB
TypeScript

import type { DifyWorld } from '../../support/world'
import { Given, Then, When } from '@cucumber/cucumber'
import { expect } from '@playwright/test'
import { createTestApp } from '../../../support/api'
Given(
'there is an existing E2E completion app available for testing',
async function (this: DifyWorld) {
const name = `E2E Test App ${Date.now()}`
const app = await createTestApp(name, 'completion')
this.lastCreatedAppName = app.name
this.createdAppIds.push(app.id)
},
)
When('I confirm the app switch', async function (this: DifyWorld) {
await this.getPage().getByRole('button', { name: 'Start switch' }).click()
})
Then('I should land on the switched app', async function (this: DifyWorld) {
const page = this.getPage()
await expect(page).toHaveURL(/\/app\/[^/]+\/workflow(?:\?.*)?$/, { timeout: 15_000 })
// Capture the new app's ID so the After hook can clean it up
const match = page.url().match(/\/app\/([^/]+)\/workflow/)
if (match?.[1])
this.createdAppIds.push(match[1])
})