mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
feat: Split up IDP HTML, routing, and handler behaviour
This commit is contained in:
@@ -1,22 +1,20 @@
|
||||
import { BasicRepresentation } from '../../../../src/http/representation/BasicRepresentation';
|
||||
import type {
|
||||
InteractionResponseResult,
|
||||
} from '../../../../src/identity/interaction/InteractionHandler';
|
||||
import type { Representation } from '../../../../src/http/representation/Representation';
|
||||
import {
|
||||
InteractionHandler,
|
||||
} from '../../../../src/identity/interaction/InteractionHandler';
|
||||
import { NotImplementedHttpError } from '../../../../src/util/errors/NotImplementedHttpError';
|
||||
|
||||
class SimpleInteractionHandler extends InteractionHandler {
|
||||
public async handle(): Promise<InteractionResponseResult> {
|
||||
return { type: 'response' };
|
||||
public async handle(): Promise<Representation> {
|
||||
return new BasicRepresentation();
|
||||
}
|
||||
}
|
||||
|
||||
describe('An InteractionHandler', (): void => {
|
||||
const handler = new SimpleInteractionHandler();
|
||||
|
||||
it('only supports JSON data.', async(): Promise<void> => {
|
||||
it('only supports JSON data or empty bodies.', async(): Promise<void> => {
|
||||
let representation = new BasicRepresentation('{}', 'application/json');
|
||||
await expect(handler.canHandle({ operation: { body: representation }} as any)).resolves.toBeUndefined();
|
||||
|
||||
@@ -24,6 +22,7 @@ describe('An InteractionHandler', (): void => {
|
||||
await expect(handler.canHandle({ operation: { body: representation }} as any))
|
||||
.rejects.toThrow(NotImplementedHttpError);
|
||||
|
||||
await expect(handler.canHandle({ operation: {}} as any)).rejects.toThrow(NotImplementedHttpError);
|
||||
representation = new BasicRepresentation();
|
||||
await expect(handler.canHandle({ operation: { body: representation }} as any)).resolves.toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user