UNPKG

@autobe/agent

Version:

AI backend server code generator

63 lines (62 loc) 2.64 kB
import { AutoBeInterfaceAuthorization, AutoBeOpenApi, AutoBeTestScenario } from "@autobe/interface"; import { HashMap } from "tstl"; import { IValidation } from "typia"; export declare namespace AutoBeTestScenarioProgrammer { /** * Create a HashMap associating endpoints with operations. * * @param operations - Array of operations to associate * @returns HashMap with endpoint as key and operation as value */ const associate: (operations: AutoBeOpenApi.IOperation[]) => HashMap<AutoBeOpenApi.IEndpoint, AutoBeOpenApi.IOperation>; /** * Fulfill test scenario with missing authentication dependencies. * * Automatically adds missing authentication operations (join/login) to the * scenario's dependencies based on authorization actor requirements. * * Authentication correction rules: * * - Single actor: Adds join operation if missing * - Multiple actors: Adds join + login operations for each actor if missing * * This function mutates the scenario by prepending auth dependencies to * ensure they execute before all other operations (correct execution order). * * Duplicate prevention: Tracks existing join/login operations in dependencies * to avoid adding them twice. * * @param props - Fulfillment configuration * @param props.dict - Endpoint to operation lookup map * @param props.authorizations - Available authorization configurations * @param props.operation - Target operation being tested * @param props.scenario - Scenario to fulfill (will be mutated) */ const fulfill: (props: { dict: HashMap<AutoBeOpenApi.IEndpoint, AutoBeOpenApi.IOperation>; authorizations: AutoBeInterfaceAuthorization[]; operation: AutoBeOpenApi.IOperation; scenario: AutoBeTestScenario; }) => void; /** * Validate test scenario complete request. * * Validates: * * - Scenario endpoint matches target operation * - All dependency endpoints exist in document operations * - No self-referencing dependencies (operation depending on itself) * * Note: This function performs pure validation only. Call fulfill() before * validation to ensure authentication dependencies are present. * * @param props - Validation configuration */ const validate: (props: { errors: IValidation.IError[]; dict: HashMap<AutoBeOpenApi.IEndpoint, AutoBeOpenApi.IOperation>; operation: AutoBeOpenApi.IOperation; scenario: AutoBeTestScenario; accessor: string; }) => void; }