UNPKG

donobu

Version:

Create browser automations with an LLM agent and replay them as Playwright scripts.

36 lines 2.08 kB
import type { CreateSuite } from '../models/CreateSuite'; import type { PaginatedResult } from '../models/PaginatedResult'; import type { SuiteMetadata, SuitesQuery } from '../models/SuiteMetadata'; import type { SuitesPersistenceRegistry } from '../persistence/suites/SuitesPersistenceRegistry'; import type { TestsPersistenceRegistry } from '../persistence/tests/TestsPersistenceRegistry'; export declare class SuitesManager { private readonly suitesPersistenceRegistry; private readonly testsPersistenceRegistry; constructor(suitesPersistenceRegistry: SuitesPersistenceRegistry, testsPersistenceRegistry: TestsPersistenceRegistry); createSuite(params: CreateSuite): Promise<SuiteMetadata>; getSuiteById(suiteId: string): Promise<SuiteMetadata>; getSuites(query: SuitesQuery): Promise<PaginatedResult<SuiteMetadata>>; /** * Update a suite in the persistence layer where it exists. * Iterates layers, updates in the first one that has it, ignores * SuiteNotFoundExceptions from others. */ updateSuite(suiteMetadata: SuiteMetadata): Promise<void>; /** * Delete a suite from all persistence layers. * * Orphans tests that belong to the suite first, then deletes the suite * row. The orphan pass must run before the suite delete: SQLite has an * ON DELETE SET NULL FK on test_metadata.suite_id, which clears the * column synchronously inside DELETE FROM suite_metadata. If we deleted * first, the subsequent getTests({ suiteId }) filter would find zero * rows in the SQLite layer (column already null) and skip the JSON-blob * rewrite, leaving each affected test's `metadata.suiteId` pointed at a * suite that no longer exists. Orphaning first rewrites both the SQL * column and the JSON blob via updateTest, so the FK cascade is then a * no-op. Non-DB layers (Volatile, S3, GCS) have no FK and rely on this * pass for the cascade behavior in either ordering. */ deleteSuite(suiteId: string): Promise<void>; } //# sourceMappingURL=SuitesManager.d.ts.map