/** * Shared MFA test scenarios for flow tests. * Reduces duplication between client and server test suites. */ import type { MfaRequirements } from "../errors/index.js"; import type { Authenticator, ChallengeResponse, EnrollmentResponse, MfaVerifyResponse } from "../types/index.js"; /** * Test scenario structure for black-box testing. */ export interface MfaTestScenario { /** Test case name */ name: string; /** Input parameters */ input: TInput; /** Expected output or validation function */ expected?: TOutput | ((result: TOutput) => void); /** MSW response configuration */ mswResponse?: { status: number; body: any; }; /** Expected error validation */ expectError?: (error: any) => void; } export declare const getAuthenticatorsScenarios: MfaTestScenario<{ mfaToken: string; mfaRequirements?: MfaRequirements; }, Authenticator[]>[]; export declare const challengeScenarios: MfaTestScenario<{ mfaToken: string; challengeType: string; authenticatorId?: string; mfaRequirements?: MfaRequirements; }, ChallengeResponse>[]; export declare const verifyScenarios: MfaTestScenario<{ mfaToken: string; otp?: string; oobCode?: string; bindingCode?: string; recoveryCode?: string; audience?: string; scope?: string; mfaRequirements?: MfaRequirements; }, MfaVerifyResponse>[]; export declare const enrollScenarios: MfaTestScenario<{ mfaToken: string; authenticatorTypes: string[]; oobChannels?: string[]; phoneNumber?: string; email?: string; }, EnrollmentResponse>[];