it("sets and gets a value", done => { RequestLocalStorage.startRequest(() => { const layer = new LayerRLS({key: "A"}); layer.set(obj).then(() => layer.get()).then(() => { expect(layer.val).toEqual(obj); done(); }); }); });
setImmediate(() => { RequestLocalStorage.startRequest(() => { //A new instance with the same key does not return obj //this time, because it is scoped to a different request. const layer = new LayerRLS(key); layer.get(); expect(layer.val).toBeUndefined(); done(); }); });
setImmediate(() => { RequestLocalStorage.startRequest(() => { let layer = new LayerRLS(key); layer.set(obj); layer.get(); expect(layer.val).toEqual(obj); //A new instance with the same key returns obj. layer = new LayerRLS(key); layer.get(); expect(layer.val).toEqual(obj); }); });
it("stashes copies when configured to copy", done => { const obj = { foo: "bar" } LayerRLS.configure({copy: true}); RequestLocalStorage.startRequest(() => { const layer = new LayerRLS({key: "A"}); layer.set(obj).then(() => layer.get()).then(() => { expect(layer.val).not.toBe(obj); expect(layer.val).toEqual(obj); done(); }); }); });