@case-contract-testing/case
Version:
Next-generation contract testing suite
34 lines (33 loc) • 1.01 kB
TypeScript
import type { AnyState, AnyCaseNodeOrData, AnyMockDescriptor, CaseError } from '../../entities/types';
export interface ContractDescription {
consumerName: string;
providerName: string;
}
interface BaseCaseExample {
states: AnyState[];
mock: AnyMockDescriptor;
}
interface SuccessfulCaseExample extends BaseCaseExample {
result: 'VERIFIED';
}
interface PendingCaseExample extends BaseCaseExample {
result: 'PENDING';
}
interface FailedCaseExample extends BaseCaseExample {
result: 'FAILED';
errors: CaseError[];
}
export type CaseExample = SuccessfulCaseExample | FailedCaseExample | PendingCaseExample;
export type ExampleNames = {
mockName: string;
requestName: string;
responseName: string;
};
export interface ContractData {
contractType: 'case::contract';
description: ContractDescription;
metadata: Record<string, string | Record<string, string>>;
matcherLookup: Record<string, AnyCaseNodeOrData>;
examples: Array<CaseExample>;
}
export {};