import type { ProviderFactory } from '../../../../../src/identity/configuration/ProviderFactory'; import type { Interaction } from '../../../../../src/identity/interaction/InteractionHandler'; import { ForgetWebIdHandler } from '../../../../../src/identity/interaction/oidc/ForgetWebIdHandler'; import type Provider from '../../../../../templates/types/oidc-provider'; describe('A ForgetWebIdHandler', (): void => { let oidcInteraction: Interaction; let provider: jest.Mocked; let providerFactory: jest.Mocked; let handler: ForgetWebIdHandler; beforeEach(async(): Promise => { oidcInteraction = { lastSubmission: { login: { accountId: 'id' }}, persist: jest.fn(), session: { cookie: 'cookie', }, returnTo: 'returnTo', } as any; provider = { /* eslint-disable @typescript-eslint/naming-convention */ Session: { find: jest.fn().mockResolvedValue({ persist: jest.fn() }), }, /* eslint-enable @typescript-eslint/naming-convention */ } as any; providerFactory = { getProvider: jest.fn().mockResolvedValue(provider), }; handler = new ForgetWebIdHandler(providerFactory); }); it('forgets the WebID and updates the interaction.', async(): Promise => { await expect(handler.handle({ oidcInteraction } as any)).rejects.toThrow(expect.objectContaining({ statusCode: 302, location: 'returnTo', })); }); });