@autobe/agent
Version:
AI backend server code generator
63 lines (62 loc) • 2.64 kB
TypeScript
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;
}