diff --git a/src/display/annotation_storage.js b/src/display/annotation_storage.js index f4f5c52ca..def437187 100644 --- a/src/display/annotation_storage.js +++ b/src/display/annotation_storage.js @@ -42,7 +42,12 @@ class AnnotationStorage { * @returns {Object} */ getValue(key, defaultValue) { - return this._storage.get(key) ?? defaultValue; + const value = this._storage.get(key); + if (value === undefined) { + return defaultValue; + } + + return Object.assign(defaultValue, value); } /** diff --git a/test/unit/annotation_storage_spec.js b/test/unit/annotation_storage_spec.js index ee50d45bb..a736309cc 100644 --- a/test/unit/annotation_storage_spec.js +++ b/test/unit/annotation_storage_spec.js @@ -35,6 +35,24 @@ describe("AnnotationStorage", function () { }).value; expect(value).toEqual("hello world"); }); + + it("should get set values and default ones in the annotation storage", function () { + const annotationStorage = new AnnotationStorage(); + annotationStorage.setValue("123A", { + value: "hello world", + hello: "world", + }); + + const result = annotationStorage.getValue("123A", { + value: "an other string", + world: "hello", + }); + expect(result).toEqual({ + value: "hello world", + hello: "world", + world: "hello", + }); + }); }); describe("SetValue", function () {