From 5ba9dc3a89afc29abacf7682ec2f83621247dd89 Mon Sep 17 00:00:00 2001 From: k-g-a Date: Wed, 19 Feb 2025 16:24:41 +0500 Subject: [PATCH] test(set): add a couple of interceptor tests --- packages/mobx/__tests__/v5/base/set.js | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/packages/mobx/__tests__/v5/base/set.js b/packages/mobx/__tests__/v5/base/set.js index c956775ba..c947e73ae 100644 --- a/packages/mobx/__tests__/v5/base/set.js +++ b/packages/mobx/__tests__/v5/base/set.js @@ -474,3 +474,48 @@ describe("Observable Set methods are reactive", () => { expect(c).toBe(3) }) }) + + +describe("Observable Set interceptors", () => { + + let s = set() + + beforeEach(() => { + s = set() + }) + + test("Add does not add value if interceptor returned no change", () => { + mobx.intercept(s, (change) => { + if(change.type === 'add' && change.newValue === 2) { + return undefined; + } + + return change; + }) + + s.add(1); + s.add(2); + + expect([...s]).toStrictEqual([1]); + + + }) + + test("Add respects newValue from interceptor", () => { + + mobx.intercept(s, (change) => { + if(change.type === 'add' && change.newValue === 2) { + change.newValue = 10; + } + + return change; + }) + + s.add(1); + s.add(2); + + expect([...s]).toStrictEqual([1, 10]) + }) + + +}) \ No newline at end of file