diff --git a/assets/js/deserializer.mjs b/assets/js/deserializer.mjs new file mode 100644 index 000000000..30451b3cf --- /dev/null +++ b/assets/js/deserializer.mjs @@ -0,0 +1,9 @@ +"use strict"; + +export default class Deserializer { + static deserialize(data) { + if (typeof data === "string") { + return JSON.parse(data); + } + } +} diff --git a/test/javascript/deserializer_test.mjs b/test/javascript/deserializer_test.mjs new file mode 100644 index 000000000..9cd77accf --- /dev/null +++ b/test/javascript/deserializer_test.mjs @@ -0,0 +1,23 @@ +"use strict"; + +import { + assert, + defineGlobalErlangAndElixirModules, +} from "./support/helpers.mjs"; + +import Deserializer from "../../assets/js/deserializer.mjs"; +import JsonEncoder from "../../assets/js/json_encoder.mjs"; + +defineGlobalErlangAndElixirModules(); + +describe("Deserializer", () => { + describe("deserialize()", () => { + it("string", () => { + const obj = {a: 1, b: 2}; + const data = JsonEncoder.encode(obj); + const result = Deserializer.deserialize(data); + + assert.deepStrictEqual(result, obj); + }); + }); +});