dify/e2e/support/api/apps.ts
yyh 05a25943e7
fix(e2e): align fixtures with generated contracts (#39394)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-22 05:09:23 +00:00

37 lines
1.2 KiB
TypeScript

import type { CreateAppPayload, PostAppsResponse } from '@dify/contracts/api/console/apps/types.gen'
import { zPostAppsResponse } from '@dify/contracts/api/console/apps/zod.gen'
import { assertE2EResourceName, createE2EResourceName } from '../naming'
import { createConsoleApiContext, expectApiResponseOK } from './console-context'
export async function createTestApp(
name = createE2EResourceName('App'),
mode: CreateAppPayload['mode'] = 'workflow',
): Promise<PostAppsResponse> {
assertE2EResourceName(name, 'App')
const ctx = await createConsoleApiContext()
try {
const data = {
name,
mode,
icon_type: 'emoji',
icon: '🤖',
icon_background: '#FFEAD5',
} satisfies CreateAppPayload
const response = await ctx.post('/console/api/apps', { data })
await expectApiResponseOK(response, `Create ${mode} app ${name}`)
return zPostAppsResponse.parse(await response.json())
} finally {
await ctx.dispose()
}
}
export async function deleteTestApp(id: string): Promise<void> {
const ctx = await createConsoleApiContext()
try {
const response = await ctx.delete(`/console/api/apps/${id}`)
await expectApiResponseOK(response, `Delete app ${id}`)
} finally {
await ctx.dispose()
}
}