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

* feat: Add logging * refactor: Configure the logger for the tests once globally * feat: Add logging * fix: Fix ESLint errors due to merge conflicts * Review log and error messages. * refactor: Cleanup a bit * refactor: Change to logger info calls Co-authored-by: Ruben Verborgh <ruben@verborgh.org>
40 lines
1.7 KiB
TypeScript
40 lines
1.7 KiB
TypeScript
import { BasicTargetExtractor } from '../../../../src/ldp/http/BasicTargetExtractor';
|
|
|
|
describe('A BasicTargetExtractor', (): void => {
|
|
const extractor = new BasicTargetExtractor();
|
|
|
|
it('can handle any input.', async(): Promise<void> => {
|
|
await expect(extractor.canHandle()).resolves.toBeUndefined();
|
|
});
|
|
|
|
it('errors if there is no URL.', async(): Promise<void> => {
|
|
await expect(extractor.handle({ headers: { host: 'test.com' }} as any)).rejects.toThrow('Missing URL');
|
|
});
|
|
|
|
it('errors if there is no host.', async(): Promise<void> => {
|
|
await expect(extractor.handle({ url: 'url', headers: {}} as any)).rejects.toThrow('Missing Host header');
|
|
});
|
|
|
|
it('returns the input URL.', async(): Promise<void> => {
|
|
await expect(extractor.handle({ url: 'url', headers: { host: 'test.com' }} as any))
|
|
.resolves.toEqual({ path: 'http://test.com/url' });
|
|
});
|
|
|
|
it('uses https protocol if the connection is secure.', async(): Promise<void> => {
|
|
await expect(extractor.handle(
|
|
{ url: 'url', headers: { host: 'test.com' }, connection: { encrypted: true } as any } as any,
|
|
)).resolves.toEqual({ path: 'https://test.com/url' });
|
|
});
|
|
|
|
it('encodes relevant characters.', async(): Promise<void> => {
|
|
await expect(extractor.handle({ url: '/a%20path%26/name', headers: { host: 'test.com' }} as any))
|
|
.resolves.toEqual({ path: 'http://test.com/a%20path%26/name' });
|
|
|
|
await expect(extractor.handle({ url: '/a path%26/name', headers: { host: 'test.com' }} as any))
|
|
.resolves.toEqual({ path: 'http://test.com/a%20path%26/name' });
|
|
|
|
await expect(extractor.handle({ url: '/path&%26/name', headers: { host: 'test.com' }} as any))
|
|
.resolves.toEqual({ path: 'http://test.com/path%26%26/name' });
|
|
});
|
|
});
|