mirror of
https://github.com/langgenius/dify.git
synced 2026-06-10 18:24:09 +08:00
55 lines
1.8 KiB
TypeScript
55 lines
1.8 KiB
TypeScript
import type { SuiteAPI, TestAPI } from 'vitest'
|
|
import type { DifyEdition, E2ECapabilities } from '../setup/env.js'
|
|
import { describe, it } from 'vitest'
|
|
|
|
// Explicit casts bridge the ChainableFunction vs SuiteAPI/TestAPI
|
|
// incompatibility introduced in vite-plus-test@0.1.22 (TS2322 / TS4058).
|
|
// Using 'unknown' as an intermediate to satisfy strict no-explicit-any rules.
|
|
export function optionalDescribe(condition: boolean): SuiteAPI {
|
|
return (condition ? describe : describe.skip) as unknown as SuiteAPI
|
|
}
|
|
|
|
export function optionalIt(condition: boolean): TestAPI {
|
|
return (condition ? it : it.skip) as unknown as TestAPI
|
|
}
|
|
|
|
/**
|
|
* Return an `it` variant that only runs in Enterprise Edition (EE) mode.
|
|
*
|
|
* Usage:
|
|
* const eeIt = enterpriseOnlyIt(caps)
|
|
* eeIt('[EE][P0] workspace switching works across two workspaces', async () => { … })
|
|
*
|
|
* In CE mode the test is automatically skipped with a clear label.
|
|
* The [EE] tag in the test name is purely informational and documents the
|
|
* requirement in the test report.
|
|
*/
|
|
export function enterpriseOnlyIt(caps: E2ECapabilities): TestAPI {
|
|
return optionalIt(caps.edition === 'ee')
|
|
}
|
|
|
|
/**
|
|
* Return a `describe` variant that only runs in Enterprise Edition (EE) mode.
|
|
*
|
|
* Usage:
|
|
* const eeDescribe = enterpriseOnlyDescribe(caps)
|
|
* eeDescribe('[EE] cross-workspace suite', () => { … })
|
|
*/
|
|
export function enterpriseOnlyDescribe(caps: E2ECapabilities): SuiteAPI {
|
|
return optionalDescribe(caps.edition === 'ee')
|
|
}
|
|
|
|
/**
|
|
* Convenience: return true when capabilities indicate Enterprise Edition.
|
|
* Use for inline guards inside regular `it` blocks.
|
|
*
|
|
* @example
|
|
* it('cross-workspace query [EE]', async () => {
|
|
* if (!isEE(caps)) return // skip silently in CE
|
|
* …
|
|
* })
|
|
*/
|
|
export function isEE(caps: { edition: DifyEdition }): boolean {
|
|
return caps.edition === 'ee'
|
|
}
|