diff --git a/src/persistence/deserialization/deserialization-manager.test.ts b/src/persistence/deserialization/deserialization-manager.test.ts index 9ac01747..74ce121b 100644 --- a/src/persistence/deserialization/deserialization-manager.test.ts +++ b/src/persistence/deserialization/deserialization-manager.test.ts @@ -29,7 +29,7 @@ describe('Deserialization manager', () => { expect(deserializer.deserialize).toHaveBeenCalledTimes(1); }); - test('uses first matching deserializer', () => { + test('uses most recently registered matching deserializer', () => { const firstDeserializer = createDeserializerMatchingNumber(5); const secondDeserializer = createDeserializerMatchingNumber(6); const thirdDeserializer = createDeserializerMatchingNumber(6); @@ -41,9 +41,9 @@ describe('Deserialization manager', () => { expect(firstDeserializer.deserialize).not.toHaveBeenCalled(); - expect(secondDeserializer.deserialize).toHaveBeenCalledTimes(1); + expect(thirdDeserializer.deserialize).toHaveBeenCalledTimes(1); - expect(thirdDeserializer.deserialize).not.toHaveBeenCalled(); + expect(secondDeserializer.deserialize).not.toHaveBeenCalled(); }); test('throws error if no matching deserializer found', () => { diff --git a/src/persistence/deserialization/deserialization-manager.ts b/src/persistence/deserialization/deserialization-manager.ts index ef6a2299..c512f2f6 100644 --- a/src/persistence/deserialization/deserialization-manager.ts +++ b/src/persistence/deserialization/deserialization-manager.ts @@ -13,12 +13,12 @@ export class DeserializationManager { public constructor(private readonly logger: Logger) {} /** - * Adds a new deserialier to the lookup path for deserialization + * Adds a new deserialier to the lookup path for deserialization with highest priority */ public registerDeserializer( deserializer: Deserializer ): void { - this.deserializers.push(deserializer as Deserializer); + this.deserializers.unshift(deserializer as Deserializer); } /**