mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00

The biggest resulting change is that the consent page always appears after logging in. Some minor fixes to be closer to the spec are included together with some minor structural refactors.
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
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<Provider>;
|
|
let providerFactory: jest.Mocked<ProviderFactory>;
|
|
let handler: OidcHttpHandler;
|
|
|
|
beforeEach(async(): Promise<void> => {
|
|
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<void> => {
|
|
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);
|
|
});
|
|
});
|