import type { Provider } from 'oidc-provider'; import type { ProviderFactory } from '../../../src/identity/configuration/ProviderFactory'; import { OidcHttpHandler } from '../../../src/identity/OidcHttpHandler'; import type { HttpRequest } from '../../../src/server/HttpRequest'; import type { HttpResponse } from '../../../src/server/HttpResponse'; describe('An OidcHttpHandler', (): void => { const request: HttpRequest = {} as any; const response: HttpResponse = {} as any; let provider: jest.Mocked; let providerFactory: jest.Mocked; let handler: OidcHttpHandler; beforeEach(async(): Promise => { provider = { callback: jest.fn().mockReturnValue(jest.fn()), } as any; providerFactory = { getProvider: jest.fn().mockResolvedValue(provider), }; handler = new OidcHttpHandler(providerFactory); }); it('sends all requests to the OIDC library.', async(): Promise => { await expect(handler.handle({ request, response })).resolves.toBeUndefined(); expect(provider.callback).toHaveBeenCalledTimes(1); expect(provider.callback.mock.results[0].value).toHaveBeenCalledTimes(1); expect(provider.callback.mock.results[0].value).toHaveBeenLastCalledWith(request, response); }); });