CommunitySolidServer/test/unit/identity/interaction/util/InteractionCompleter.test.ts
renovate[bot] afc662ca9a
chore: Update (ts-)jest and use modern fake timers where possible
* chore(deps): update dependency jest to v27

* chore: Update (ts-)jest and use modern fake timers where possible

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>
2021-05-31 15:29:14 +02:00

54 lines
1.8 KiB
TypeScript

import type { Provider } from 'oidc-provider';
import { InteractionCompleter } from '../../../../../src/identity/interaction/util/InteractionCompleter';
import type { HttpRequest } from '../../../../../src/server/HttpRequest';
import type { HttpResponse } from '../../../../../src/server/HttpResponse';
// Use fixed dates
jest.useFakeTimers();
describe('An InteractionCompleter', (): void => {
const request: HttpRequest = {} as any;
const response: HttpResponse = {} as any;
const webId = 'http://alice.test.com/#me';
let provider: Provider;
const completer = new InteractionCompleter();
beforeEach(async(): Promise<void> => {
provider = {
interactionFinished: jest.fn(),
} as any;
});
it('sends the correct data to the provider.', async(): Promise<void> => {
await expect(completer.handle({ request, response, provider, webId, shouldRemember: true }))
.resolves.toBeUndefined();
expect(provider.interactionFinished).toHaveBeenCalledTimes(1);
expect(provider.interactionFinished).toHaveBeenLastCalledWith(request, response, {
login: {
account: webId,
remember: true,
ts: Math.floor(Date.now() / 1000),
},
consent: {
rejectedScopes: [],
},
});
});
it('rejects offline access if shouldRemember is false.', async(): Promise<void> => {
await expect(completer.handle({ request, response, provider, webId, shouldRemember: false }))
.resolves.toBeUndefined();
expect(provider.interactionFinished).toHaveBeenCalledTimes(1);
expect(provider.interactionFinished).toHaveBeenLastCalledWith(request, response, {
login: {
account: webId,
remember: false,
ts: Math.floor(Date.now() / 1000),
},
consent: {
rejectedScopes: [ 'offline_access' ],
},
});
});
});