mirror of
https://github.com/simstudioai/sim.git
synced 2026-09-19 01:21:04 +08:00
- Replaces the workflow-hardcoded folder orchestration with a config-driven engine: one implementation parameterized by `FOLDER_RESOURCES`, with `lib/workflows/orchestration/folder-lifecycle.ts` reduced from 620 lines to thin wrappers so no existing caller moved - Threads `resourceType` through all four folder routes and the React Query keys; contract widened to `workflow | knowledge_base | table` - Folder locking moved behind a `supportsLocking` capability rather than scattered `resourceType === 'workflow'` checks - Folder restore now matches dependents by the cascade timestamp, so a schedule or webhook archived independently before a folder delete stays archived (deliberate behavior change, documented in the PR) - 25 cascade tests including a fixed-statement-count assertion guarding against N+1 regressions
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { vi } from 'vitest'
|
|
|
|
/**
|
|
* Controllable mock functions for `@/lib/folders/lifecycle` — the generic,
|
|
* resourceType-driven folder engine behind every `/api/folders` route.
|
|
* All defaults are bare `vi.fn()` — configure per-test as needed.
|
|
*
|
|
* @example
|
|
* ```ts
|
|
* import { foldersLifecycleMockFns } from '@sim/testing'
|
|
*
|
|
* foldersLifecycleMockFns.mockCreateFolder.mockResolvedValue({ success: true, folder })
|
|
* ```
|
|
*/
|
|
export const foldersLifecycleMockFns = {
|
|
mockCreateFolder: vi.fn(),
|
|
mockUpdateFolder: vi.fn(),
|
|
mockDeleteFolder: vi.fn(),
|
|
mockRestoreFolder: vi.fn(),
|
|
}
|
|
|
|
/**
|
|
* Static mock module for `@/lib/folders/lifecycle`.
|
|
*
|
|
* @example
|
|
* ```ts
|
|
* vi.mock('@/lib/folders/lifecycle', () => foldersLifecycleMock)
|
|
* ```
|
|
*/
|
|
export const foldersLifecycleMock = {
|
|
createFolder: foldersLifecycleMockFns.mockCreateFolder,
|
|
updateFolder: foldersLifecycleMockFns.mockUpdateFolder,
|
|
deleteFolder: foldersLifecycleMockFns.mockDeleteFolder,
|
|
restoreFolder: foldersLifecycleMockFns.mockRestoreFolder,
|
|
}
|