WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...
    • Helper to mock JWT functions for consistent testing Provides comprehensive JWT mocking capabilities for various authentication scenarios

      Returns {
          restore: () => void;
          reset: () => void;
          mocks: {
              sign: Mock<any, any, any>;
              verify: Mock<any, any, any>;
              decode: Mock<any, any, any>;
          };
          helpers: {
              mockSignSuccess: (token?: string) => string;
              mockSignError: (error?: Error) => void;
              mockVerifySuccess: (payload: Partial<JWTPayload>) => JWTPayload;
              mockVerifyExpired: (expiredAt?: Date) => void;
              mockVerifyInvalid: (message?: string) => void;
              mockVerifyMalformed: (message?: string) => void;
              mockDecodeSuccess: (
                  payload: Partial<JWTPayload>,
              ) => {
                  header: { alg: string; typ: string };
                  payload: JWTPayload;
                  signature: string;
              };
              mockDecodeFailure: () => void;
              createTokenForRole: (
                  role: UserRole,
                  additionalPayload?: Partial<JWTPayload>,
              ) => JWTPayload;
              createExpiredToken: (
                  role?: UserRole,
                  expiredMinutesAgo?: number,
              ) => JWTPayload;
              createExpiringToken: (
                  role?: UserRole,
                  expiresInMinutes?: number,
              ) => JWTPayload;
              expectSignCall: (payload?: any, secret?: string, options?: any) => void;
              expectVerifyCall: (token?: string, secret?: string, options?: any) => void;
              expectDecodeCall: (token?: string, options?: any) => void;
              expectSignNotCalled: () => void;
              expectVerifyNotCalled: () => void;
              expectDecodeNotCalled: () => void;
          };
          scenarios: {
              validStudentToken: string;
              validInstructorToken: string;
              validAdminToken: string;
              expiredToken: string;
              invalidToken: string;
              malformedToken: string;
          };
      }

      • restore: () => void

        Restore the original JWT module

      • reset: () => void

        Reset all mocks to their default state

      • mocks: {
            sign: Mock<any, any, any>;
            verify: Mock<any, any, any>;
            decode: Mock<any, any, any>;
        }

        Access to the mock functions for custom setup

      • helpers: {
            mockSignSuccess: (token?: string) => string;
            mockSignError: (error?: Error) => void;
            mockVerifySuccess: (payload: Partial<JWTPayload>) => JWTPayload;
            mockVerifyExpired: (expiredAt?: Date) => void;
            mockVerifyInvalid: (message?: string) => void;
            mockVerifyMalformed: (message?: string) => void;
            mockDecodeSuccess: (
                payload: Partial<JWTPayload>,
            ) => {
                header: { alg: string; typ: string };
                payload: JWTPayload;
                signature: string;
            };
            mockDecodeFailure: () => void;
            createTokenForRole: (
                role: UserRole,
                additionalPayload?: Partial<JWTPayload>,
            ) => JWTPayload;
            createExpiredToken: (
                role?: UserRole,
                expiredMinutesAgo?: number,
            ) => JWTPayload;
            createExpiringToken: (
                role?: UserRole,
                expiresInMinutes?: number,
            ) => JWTPayload;
            expectSignCall: (payload?: any, secret?: string, options?: any) => void;
            expectVerifyCall: (token?: string, secret?: string, options?: any) => void;
            expectDecodeCall: (token?: string, options?: any) => void;
            expectSignNotCalled: () => void;
            expectVerifyNotCalled: () => void;
            expectDecodeNotCalled: () => void;
        }

        Helper methods for common JWT testing scenarios

        • mockSignSuccess: (token?: string) => string

          Mock a successful token generation

        • mockSignError: (error?: Error) => void

          Mock a token generation error

        • mockVerifySuccess: (payload: Partial<JWTPayload>) => JWTPayload

          Mock successful token verification with custom payload

        • mockVerifyExpired: (expiredAt?: Date) => void

          Mock token verification for an expired token

        • mockVerifyInvalid: (message?: string) => void

          Mock token verification for an invalid token

        • mockVerifyMalformed: (message?: string) => void

          Mock token verification for a malformed token

        • mockDecodeSuccess: (
              payload: Partial<JWTPayload>,
          ) => {
              header: { alg: string; typ: string };
              payload: JWTPayload;
              signature: string;
          }

          Mock token decoding success with custom payload

        • mockDecodeFailure: () => void

          Mock token decoding failure (returns null)

        • createTokenForRole: (role: UserRole, additionalPayload?: Partial<JWTPayload>) => JWTPayload

          Create a mock token for different user roles

        • createExpiredToken: (role?: UserRole, expiredMinutesAgo?: number) => JWTPayload

          Create an expired token payload

        • createExpiringToken: (role?: UserRole, expiresInMinutes?: number) => JWTPayload

          Create a token that will expire soon

        • expectSignCall: (payload?: any, secret?: string, options?: any) => void

          Verify that sign was called with specific parameters

        • expectVerifyCall: (token?: string, secret?: string, options?: any) => void

          Verify that verify was called with specific parameters

        • expectDecodeCall: (token?: string, options?: any) => void

          Verify that decode was called with specific parameters

        • expectSignNotCalled: () => void

          Verify that sign was not called

        • expectVerifyNotCalled: () => void

          Verify that verify was not called

        • expectDecodeNotCalled: () => void

          Verify that decode was not called

      • scenarios: {
            validStudentToken: string;
            validInstructorToken: string;
            validAdminToken: string;
            expiredToken: string;
            invalidToken: string;
            malformedToken: string;
        }

        Predefined token scenarios for common testing cases