fix: Improve identifier error messages.

This commit is contained in:
Ruben Verborgh 2021-04-26 15:08:39 +01:00 committed by Joachim Van Herwegen
parent 1d9b027a57
commit 2d89350ed5
2 changed files with 4 additions and 4 deletions

View File

@ -13,10 +13,10 @@ export abstract class BaseIdentifierStrategy implements IdentifierStrategy {
public getParentContainer(identifier: ResourceIdentifier): ResourceIdentifier {
if (!this.supportsIdentifier(identifier)) {
throw new InternalServerError(`${identifier.path} is not supported`);
throw new InternalServerError(`The identifier ${identifier.path} is outside the configured identifier space.`);
}
if (this.isRootContainer(identifier)) {
throw new InternalServerError(`${identifier.path} is a root container and has no parent`);
throw new InternalServerError(`Cannot obtain the parent of ${identifier.path} because it is a root container.`);
}
// Trailing slash is necessary for URL library

View File

@ -21,11 +21,11 @@ describe('A BaseIdentifierStrategy', (): void => {
it('errors when attempting to get the parent of an unsupported identifier.', async(): Promise<void> => {
expect((): any => strategy.getParentContainer({ path: '/unsupported' }))
.toThrow('/unsupported is not supported');
.toThrow('The identifier /unsupported is outside the configured identifier space.');
});
it('errors when attempting to get the parent of a root container.', async(): Promise<void> => {
expect((): any => strategy.getParentContainer({ path: 'http://test.com/root' }))
.toThrow('http://test.com/root is a root container and has no parent');
.toThrow('Cannot obtain the parent of http://test.com/root because it is a root container.');
});
});