diff --git a/src/storage/routing/ConvertingRouterRule.ts b/src/storage/routing/ConvertingRouterRule.ts index b916372a9..6aff25975 100644 --- a/src/storage/routing/ConvertingRouterRule.ts +++ b/src/storage/routing/ConvertingRouterRule.ts @@ -24,9 +24,9 @@ export class ConvertingRouterRule extends RouterRule { private readonly typedStores: ConvertingStoreEntry[]; private readonly defaultStore: ResourceStore; - public constructor(typedStores: ConvertingStoreEntry[], defaultStore: ResourceStore) { + public constructor(typedStore: ConvertingStoreEntry, defaultStore: ResourceStore) { super(); - this.typedStores = typedStores; + this.typedStores = [ typedStore ]; this.defaultStore = defaultStore; } diff --git a/src/storage/routing/RegexRouterRule.ts b/src/storage/routing/RegexRouterRule.ts index a72296058..e20cd26ec 100644 --- a/src/storage/routing/RegexRouterRule.ts +++ b/src/storage/routing/RegexRouterRule.ts @@ -20,7 +20,8 @@ export class RegexRouterRule extends RouterRule { /** * The keys of the `storeMap` will be converted into actual RegExp objects that will be used for testing. */ - public constructor(base: string, storeMap: Record) { + // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style + public constructor(base: string, storeMap: { [ regex: string ]: ResourceStore }) { super(); this.base = trimTrailingSlashes(base); this.regexes = new Map(Object.keys(storeMap).map((regex): [ RegExp, ResourceStore ] => diff --git a/test/unit/storage/routing/ConvertingRouterRule.test.ts b/test/unit/storage/routing/ConvertingRouterRule.test.ts index 34233b0e5..706ba5c3c 100644 --- a/test/unit/storage/routing/ConvertingRouterRule.test.ts +++ b/test/unit/storage/routing/ConvertingRouterRule.test.ts @@ -9,17 +9,14 @@ import { NotFoundHttpError } from '../../../../src/util/errors/NotFoundHttpError describe('A ConvertingRouterRule', (): void => { let store1: ResourceStore; - let store2: ResourceStore; let defaultStore: ResourceStore; let checker1: PreferenceSupport; - let checker2: PreferenceSupport; let rule: ConvertingRouterRule; let representation: Representation; let metadata: RepresentationMetadata; beforeEach(async(): Promise => { store1 = { name: 'turtleStore' } as any; - store2 = { name: 'textStore' } as any; defaultStore = { name: 'defaultStore' } as any; checker1 = { @@ -27,14 +24,8 @@ describe('A ConvertingRouterRule', (): void => { return input.representation.metadata.contentType === 'text/turtle'; }, } as any; - checker2 = { - async supports(input: { representation: Representation }): Promise { - return input.representation.metadata.contentType === 'application/ld+json'; - }, - } as any; - rule = new ConvertingRouterRule([{ store: store1, supportChecker: checker1 }, - { store: store2, supportChecker: checker2 }], defaultStore); + rule = new ConvertingRouterRule({ store: store1, supportChecker: checker1 }, defaultStore); metadata = new RepresentationMetadata(); representation = { binary: true, data: 'data!' as any, metadata }; @@ -43,9 +34,6 @@ describe('A ConvertingRouterRule', (): void => { it('returns the corresponding store if it supports the input.', async(): Promise => { metadata.contentType = 'text/turtle'; await expect(rule.handle({ identifier: { path: 'identifier' }, representation })).resolves.toBe(store1); - - metadata.contentType = 'application/ld+json'; - await expect(rule.handle({ identifier: { path: 'identifier' }, representation })).resolves.toBe(store2); }); it('returns the defaultStore if the converter does not support the input.', async(): Promise => { @@ -54,11 +42,8 @@ describe('A ConvertingRouterRule', (): void => { it('checks if the stores contain the identifier if there is no data.', async(): Promise => { const data: Readable = { destroy: jest.fn() } as any; - store1.getRepresentation = (): any => { - throw new NotFoundHttpError(); - }; - store2.getRepresentation = async(): Promise => ({ data } as any); - await expect(rule.handle({ identifier: { path: 'identifier' }})).resolves.toBe(store2); + store1.getRepresentation = async(): Promise => ({ data } as any); + await expect(rule.handle({ identifier: { path: 'identifier' }})).resolves.toBe(store1); expect(data.destroy).toHaveBeenCalledTimes(1); }); @@ -66,9 +51,6 @@ describe('A ConvertingRouterRule', (): void => { store1.getRepresentation = (): any => { throw new NotFoundHttpError(); }; - store2.getRepresentation = (): any => { - throw new NotFoundHttpError(); - }; await expect(rule.handle({ identifier: { path: 'identifier' }})).resolves.toBe(defaultStore); });