@praxisjs/decorators 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/__tests__/component.test.d.ts +2 -0
  3. package/dist/__tests__/component.test.d.ts.map +1 -0
  4. package/dist/__tests__/component.test.js +146 -0
  5. package/dist/__tests__/component.test.js.map +1 -0
  6. package/dist/__tests__/compose.test.d.ts +2 -0
  7. package/dist/__tests__/compose.test.d.ts.map +1 -0
  8. package/dist/__tests__/compose.test.js +171 -0
  9. package/dist/__tests__/compose.test.js.map +1 -0
  10. package/dist/__tests__/events.test.d.ts +2 -0
  11. package/dist/__tests__/events.test.d.ts.map +1 -0
  12. package/dist/__tests__/events.test.js +216 -0
  13. package/dist/__tests__/events.test.js.map +1 -0
  14. package/dist/__tests__/functions.test.js +283 -31
  15. package/dist/__tests__/functions.test.js.map +1 -1
  16. package/dist/__tests__/lazy.test.d.ts +2 -0
  17. package/dist/__tests__/lazy.test.d.ts.map +1 -0
  18. package/dist/__tests__/lazy.test.js +163 -0
  19. package/dist/__tests__/lazy.test.js.map +1 -0
  20. package/dist/__tests__/memo.test.js +71 -22
  21. package/dist/__tests__/memo.test.js.map +1 -1
  22. package/dist/__tests__/properties.test.js +191 -1
  23. package/dist/__tests__/properties.test.js.map +1 -1
  24. package/dist/__tests__/resource.test.d.ts +2 -0
  25. package/dist/__tests__/resource.test.d.ts.map +1 -0
  26. package/dist/__tests__/resource.test.js +103 -0
  27. package/dist/__tests__/resource.test.js.map +1 -0
  28. package/dist/__tests__/slot.test.d.ts +2 -0
  29. package/dist/__tests__/slot.test.d.ts.map +1 -0
  30. package/dist/__tests__/slot.test.js +147 -0
  31. package/dist/__tests__/slot.test.js.map +1 -0
  32. package/dist/__tests__/virtual.test.d.ts +2 -0
  33. package/dist/__tests__/virtual.test.d.ts.map +1 -0
  34. package/dist/__tests__/virtual.test.js +242 -0
  35. package/dist/__tests__/virtual.test.js.map +1 -0
  36. package/dist/component/component.d.ts +1 -1
  37. package/dist/component/component.d.ts.map +1 -1
  38. package/dist/component/component.js +15 -10
  39. package/dist/component/component.js.map +1 -1
  40. package/dist/component/lazy.d.ts +1 -1
  41. package/dist/component/lazy.d.ts.map +1 -1
  42. package/dist/component/lazy.js +29 -27
  43. package/dist/component/lazy.js.map +1 -1
  44. package/dist/component/virtual.d.ts +1 -1
  45. package/dist/component/virtual.d.ts.map +1 -1
  46. package/dist/component/virtual.js +46 -50
  47. package/dist/component/virtual.js.map +1 -1
  48. package/dist/create-class-decorator.d.ts +16 -0
  49. package/dist/create-class-decorator.d.ts.map +1 -0
  50. package/dist/create-class-decorator.js +35 -0
  51. package/dist/create-class-decorator.js.map +1 -0
  52. package/dist/create-field-decorator.d.ts +14 -0
  53. package/dist/create-field-decorator.d.ts.map +1 -0
  54. package/dist/create-field-decorator.js +37 -0
  55. package/dist/create-field-decorator.js.map +1 -0
  56. package/dist/create-getter-decorator.d.ts +18 -0
  57. package/dist/create-getter-decorator.d.ts.map +1 -0
  58. package/dist/create-getter-decorator.js +15 -0
  59. package/dist/create-getter-decorator.js.map +1 -0
  60. package/dist/create-lifecycle-method-decorator.d.ts +6 -0
  61. package/dist/create-lifecycle-method-decorator.d.ts.map +1 -0
  62. package/dist/create-lifecycle-method-decorator.js +22 -0
  63. package/dist/create-lifecycle-method-decorator.js.map +1 -0
  64. package/dist/create-method-decorator.d.ts +6 -0
  65. package/dist/create-method-decorator.d.ts.map +1 -0
  66. package/dist/create-method-decorator.js +14 -0
  67. package/dist/create-method-decorator.js.map +1 -0
  68. package/dist/events/emit.d.ts +1 -1
  69. package/dist/events/emit.d.ts.map +1 -1
  70. package/dist/events/emit.js +24 -29
  71. package/dist/events/emit.js.map +1 -1
  72. package/dist/events/on-command.d.ts +1 -2
  73. package/dist/events/on-command.d.ts.map +1 -1
  74. package/dist/events/on-command.js +15 -32
  75. package/dist/events/on-command.js.map +1 -1
  76. package/dist/functions/bind.d.ts +1 -2
  77. package/dist/functions/bind.d.ts.map +1 -1
  78. package/dist/functions/bind.js +4 -11
  79. package/dist/functions/bind.js.map +1 -1
  80. package/dist/functions/debounce.d.ts +1 -2
  81. package/dist/functions/debounce.d.ts.map +1 -1
  82. package/dist/functions/debounce.js +12 -20
  83. package/dist/functions/debounce.js.map +1 -1
  84. package/dist/functions/log.d.ts +1 -2
  85. package/dist/functions/log.d.ts.map +1 -1
  86. package/dist/functions/log.js +40 -38
  87. package/dist/functions/log.js.map +1 -1
  88. package/dist/functions/memo.d.ts +1 -2
  89. package/dist/functions/memo.d.ts.map +1 -1
  90. package/dist/functions/memo.js +15 -27
  91. package/dist/functions/memo.js.map +1 -1
  92. package/dist/functions/once.d.ts +1 -2
  93. package/dist/functions/once.d.ts.map +1 -1
  94. package/dist/functions/once.js +14 -12
  95. package/dist/functions/once.js.map +1 -1
  96. package/dist/functions/retry.d.ts +1 -2
  97. package/dist/functions/retry.d.ts.map +1 -1
  98. package/dist/functions/retry.js +23 -20
  99. package/dist/functions/retry.js.map +1 -1
  100. package/dist/functions/throttle.d.ts +1 -2
  101. package/dist/functions/throttle.d.ts.map +1 -1
  102. package/dist/functions/throttle.js +9 -16
  103. package/dist/functions/throttle.js.map +1 -1
  104. package/dist/functions/watch.d.ts +1 -1
  105. package/dist/functions/watch.d.ts.map +1 -1
  106. package/dist/functions/watch.js +25 -31
  107. package/dist/functions/watch.js.map +1 -1
  108. package/dist/functions/when.d.ts +1 -2
  109. package/dist/functions/when.d.ts.map +1 -1
  110. package/dist/functions/when.js +10 -26
  111. package/dist/functions/when.js.map +1 -1
  112. package/dist/index.d.ts +6 -1
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +6 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/properties/compose.d.ts +3 -0
  117. package/dist/properties/compose.d.ts.map +1 -0
  118. package/dist/properties/compose.js +40 -0
  119. package/dist/properties/compose.js.map +1 -0
  120. package/dist/properties/computed.d.ts +1 -2
  121. package/dist/properties/computed.d.ts.map +1 -1
  122. package/dist/properties/computed.js +10 -9
  123. package/dist/properties/computed.js.map +1 -1
  124. package/dist/properties/history.d.ts.map +1 -1
  125. package/dist/properties/history.js +37 -32
  126. package/dist/properties/history.js.map +1 -1
  127. package/dist/properties/index.d.ts +2 -0
  128. package/dist/properties/index.d.ts.map +1 -1
  129. package/dist/properties/index.js +2 -0
  130. package/dist/properties/index.js.map +1 -1
  131. package/dist/properties/persisted.d.ts +1 -2
  132. package/dist/properties/persisted.d.ts.map +1 -1
  133. package/dist/properties/persisted.js +13 -29
  134. package/dist/properties/persisted.js.map +1 -1
  135. package/dist/properties/prop.d.ts +1 -2
  136. package/dist/properties/prop.d.ts.map +1 -1
  137. package/dist/properties/prop.js +21 -25
  138. package/dist/properties/prop.js.map +1 -1
  139. package/dist/properties/resource.d.ts +14 -0
  140. package/dist/properties/resource.d.ts.map +1 -0
  141. package/dist/properties/resource.js +27 -0
  142. package/dist/properties/resource.js.map +1 -0
  143. package/dist/properties/slot.d.ts +1 -2
  144. package/dist/properties/slot.d.ts.map +1 -1
  145. package/dist/properties/slot.js +15 -20
  146. package/dist/properties/slot.js.map +1 -1
  147. package/dist/properties/state.d.ts +1 -2
  148. package/dist/properties/state.d.ts.map +1 -1
  149. package/dist/properties/state.js +13 -18
  150. package/dist/properties/state.js.map +1 -1
  151. package/package.json +2 -2
  152. package/src/__tests__/component.test.ts +166 -0
  153. package/src/__tests__/compose.test.ts +202 -0
  154. package/src/__tests__/events.test.ts +268 -0
  155. package/src/__tests__/functions.test.ts +368 -30
  156. package/src/__tests__/lazy.test.ts +218 -0
  157. package/src/__tests__/memo.test.ts +89 -22
  158. package/src/__tests__/properties.test.ts +249 -1
  159. package/src/__tests__/resource.test.ts +113 -0
  160. package/src/__tests__/slot.test.ts +179 -0
  161. package/src/__tests__/virtual.test.ts +260 -0
  162. package/src/component/component.ts +27 -12
  163. package/src/component/lazy.ts +33 -35
  164. package/src/component/virtual.tsx +62 -75
  165. package/src/create-class-decorator.ts +61 -0
  166. package/src/create-field-decorator.ts +66 -0
  167. package/src/create-getter-decorator.ts +52 -0
  168. package/src/create-lifecycle-method-decorator.ts +38 -0
  169. package/src/create-method-decorator.ts +26 -0
  170. package/src/events/emit.ts +22 -33
  171. package/src/events/on-command.ts +22 -47
  172. package/src/functions/bind.ts +4 -15
  173. package/src/functions/debounce.ts +11 -26
  174. package/src/functions/log.ts +40 -43
  175. package/src/functions/memo.ts +15 -45
  176. package/src/functions/once.ts +13 -16
  177. package/src/functions/retry.ts +21 -22
  178. package/src/functions/throttle.ts +9 -23
  179. package/src/functions/watch.ts +27 -34
  180. package/src/functions/when.ts +11 -36
  181. package/src/index.ts +28 -0
  182. package/src/properties/compose.ts +53 -0
  183. package/src/properties/computed.ts +11 -13
  184. package/src/properties/history.ts +42 -41
  185. package/src/properties/index.ts +2 -0
  186. package/src/properties/persisted.ts +17 -58
  187. package/src/properties/prop.ts +21 -31
  188. package/src/properties/resource.ts +34 -0
  189. package/src/properties/slot.ts +17 -30
  190. package/src/properties/state.ts +14 -24
@@ -0,0 +1,163 @@
1
+ // @vitest-environment jsdom
2
+ import { beforeEach, afterEach, describe, it, expect, vi } from "vitest";
3
+ import { StatefulComponent } from "@praxisjs/core";
4
+ import { Lazy } from "../component/lazy";
5
+ function applyLazy(cls, placeholder) {
6
+ return placeholder !== undefined
7
+ ? Lazy(placeholder)(cls, {})
8
+ : Lazy()(cls, {});
9
+ }
10
+ class BaseComp extends StatefulComponent {
11
+ render() {
12
+ return document.createTextNode("content");
13
+ }
14
+ }
15
+ describe("Lazy decorator", () => {
16
+ let intersectionCallback = () => { };
17
+ let mockObserve;
18
+ let mockDisconnect;
19
+ beforeEach(() => {
20
+ intersectionCallback = () => { };
21
+ mockObserve = vi.fn();
22
+ mockDisconnect = vi.fn();
23
+ globalThis.IntersectionObserver = class {
24
+ constructor(cb) {
25
+ this.observe = mockObserve;
26
+ this.disconnect = mockDisconnect;
27
+ intersectionCallback = cb;
28
+ }
29
+ };
30
+ });
31
+ afterEach(() => {
32
+ // @ts-expect-error – removing test stub
33
+ delete globalThis.IntersectionObserver;
34
+ });
35
+ it("returns null from render before visibility", () => {
36
+ const Wrapped = applyLazy(BaseComp);
37
+ const instance = new Wrapped();
38
+ expect(instance.render()).toBeNull();
39
+ });
40
+ it("sets _lazyVisible to true when IntersectionObserver is not supported", () => {
41
+ // Remove IntersectionObserver to simulate unsupported environment
42
+ // @ts-expect-error – removing test stub
43
+ delete globalThis.IntersectionObserver;
44
+ const Wrapped = applyLazy(BaseComp);
45
+ const instance = new Wrapped();
46
+ // Simulate anchor with parent element
47
+ const parent = document.createElement("div");
48
+ document.body.appendChild(parent);
49
+ const anchor = document.createComment("end");
50
+ parent.appendChild(anchor);
51
+ instance._anchor = anchor;
52
+ instance.onMount?.();
53
+ // Without IntersectionObserver, component should immediately become visible
54
+ expect(instance.render()).not.toBeNull();
55
+ document.body.removeChild(parent);
56
+ });
57
+ it("sets minHeight placeholder on mount", () => {
58
+ const Wrapped = applyLazy(BaseComp, 300);
59
+ const instance = new Wrapped();
60
+ const parent = document.createElement("div");
61
+ document.body.appendChild(parent);
62
+ const anchor = document.createComment("end");
63
+ parent.appendChild(anchor);
64
+ instance._anchor = anchor;
65
+ instance.onMount?.();
66
+ expect(parent.style.minHeight).toBe("300px");
67
+ document.body.removeChild(parent);
68
+ });
69
+ it("sets _lazyVisible and clears minHeight when intersecting", () => {
70
+ const Wrapped = applyLazy(BaseComp, 200);
71
+ const instance = new Wrapped();
72
+ const parent = document.createElement("div");
73
+ document.body.appendChild(parent);
74
+ const anchor = document.createComment("end");
75
+ parent.appendChild(anchor);
76
+ instance._anchor = anchor;
77
+ instance.onMount?.();
78
+ expect(instance.render()).toBeNull();
79
+ intersectionCallback([{ isIntersecting: true }], null);
80
+ expect(parent.style.minHeight).toBe("");
81
+ expect(instance.render()).not.toBeNull(); // component became visible after intersection
82
+ expect(mockDisconnect).toHaveBeenCalled();
83
+ document.body.removeChild(parent);
84
+ });
85
+ it("does nothing when _anchor has no parent", () => {
86
+ const Wrapped = applyLazy(BaseComp);
87
+ const instance = new Wrapped();
88
+ const anchor = document.createComment("end");
89
+ instance._anchor = anchor;
90
+ // Should not throw even though anchor has no parent
91
+ expect(() => instance.onMount?.()).not.toThrow();
92
+ });
93
+ it("disconnects observer on unmount", () => {
94
+ const Wrapped = applyLazy(BaseComp);
95
+ const instance = new Wrapped();
96
+ const parent = document.createElement("div");
97
+ document.body.appendChild(parent);
98
+ const anchor = document.createComment("end");
99
+ parent.appendChild(anchor);
100
+ instance._anchor = anchor;
101
+ instance.onMount?.();
102
+ instance.onUnmount?.();
103
+ expect(mockDisconnect).toHaveBeenCalled();
104
+ document.body.removeChild(parent);
105
+ });
106
+ it("onMount does nothing when _anchor is undefined", () => {
107
+ const Wrapped = applyLazy(BaseComp);
108
+ const instance = new Wrapped();
109
+ // _anchor is undefined by default
110
+ expect(() => instance.onMount?.()).not.toThrow();
111
+ });
112
+ it("render() returns original content after becoming visible", () => {
113
+ const Wrapped = applyLazy(BaseComp, 200);
114
+ const instance = new Wrapped();
115
+ const parent = document.createElement("div");
116
+ document.body.appendChild(parent);
117
+ const anchor = document.createComment("end");
118
+ parent.appendChild(anchor);
119
+ instance._anchor = anchor;
120
+ instance.onMount?.();
121
+ expect(instance.render()).toBeNull(); // not yet visible
122
+ intersectionCallback([{ isIntersecting: true }], null);
123
+ // Now visible: render() must delegate to the original render()
124
+ const result = instance.render();
125
+ expect(result).not.toBeNull();
126
+ document.body.removeChild(parent);
127
+ });
128
+ it("observer stays active and minHeight is preserved when entry is not intersecting", () => {
129
+ const Wrapped = applyLazy(BaseComp, 200);
130
+ const instance = new Wrapped();
131
+ const parent = document.createElement("div");
132
+ document.body.appendChild(parent);
133
+ const anchor = document.createComment("end");
134
+ parent.appendChild(anchor);
135
+ instance._anchor = anchor;
136
+ instance.onMount?.();
137
+ // Fire callback with isIntersecting=false — should be a no-op
138
+ intersectionCallback([{ isIntersecting: false }], null);
139
+ expect(instance.render()).toBeNull();
140
+ expect(mockDisconnect).not.toHaveBeenCalled();
141
+ expect(parent.style.minHeight).toBe("200px");
142
+ document.body.removeChild(parent);
143
+ });
144
+ it("does not re-apply minHeight on remount when already visible", () => {
145
+ const Wrapped = applyLazy(BaseComp, 300);
146
+ const instance = new Wrapped();
147
+ const parent = document.createElement("div");
148
+ document.body.appendChild(parent);
149
+ const anchor = document.createComment("end");
150
+ parent.appendChild(anchor);
151
+ instance._anchor = anchor;
152
+ // First mount — become visible
153
+ instance.onMount?.();
154
+ intersectionCallback([{ isIntersecting: true }], null);
155
+ instance.onUnmount?.();
156
+ // Second mount — _lazyVisible is already true
157
+ instance.onMount?.();
158
+ // minHeight must NOT be re-applied because _lazyVisible() is true
159
+ expect(parent.style.minHeight).toBe("");
160
+ document.body.removeChild(parent);
161
+ });
162
+ });
163
+ //# sourceMappingURL=lazy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.test.js","sourceRoot":"","sources":["../../src/__tests__/lazy.test.ts"],"names":[],"mappings":"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"}
@@ -1,65 +1,114 @@
1
1
  import { describe, it, expect, vi } from "vitest";
2
+ import { signal } from "@praxisjs/core/internal";
2
3
  import { Memo } from "../functions/memo";
3
4
  function mockCtx(name) {
4
- return { name, kind: "method" };
5
+ const initializers = [];
6
+ return {
7
+ name,
8
+ kind: "method",
9
+ addInitializer(fn) {
10
+ initializers.push(fn);
11
+ },
12
+ runInitializers(instance) {
13
+ initializers.forEach((fn) => { fn.call(instance); });
14
+ },
15
+ };
5
16
  }
6
17
  describe("Memo", () => {
7
18
  it("returns the computed value", () => {
8
19
  const fn = vi.fn((x) => x * 2);
9
- const wrapped = Memo()(fn, mockCtx("double"));
20
+ const ctx = mockCtx("double");
21
+ Memo()(fn, ctx);
10
22
  const obj = {};
11
- expect(wrapped.call(obj, 5)).toBe(10);
23
+ ctx.runInitializers(obj);
24
+ const method = obj.double;
25
+ expect(method(5)).toBe(10);
12
26
  });
13
27
  it("caches result for same args — calls original only once", () => {
14
28
  const fn = vi.fn((x) => x + 1);
15
- const wrapped = Memo()(fn, mockCtx("inc"));
29
+ const ctx = mockCtx("inc");
30
+ Memo()(fn, ctx);
16
31
  const obj = {};
17
- wrapped.call(obj, 3);
18
- wrapped.call(obj, 3);
19
- wrapped.call(obj, 3);
32
+ ctx.runInitializers(obj);
33
+ const method = obj.inc;
34
+ method(3);
35
+ method(3);
36
+ method(3);
20
37
  expect(fn).toHaveBeenCalledTimes(1);
21
38
  });
22
39
  it("computes separately for different args", () => {
23
40
  const fn = vi.fn((x) => x * 10);
24
- const wrapped = Memo()(fn, mockCtx("mul"));
41
+ const ctx = mockCtx("mul");
42
+ Memo()(fn, ctx);
25
43
  const obj = {};
26
- expect(wrapped.call(obj, 2)).toBe(20);
27
- expect(wrapped.call(obj, 3)).toBe(30);
44
+ ctx.runInitializers(obj);
45
+ const method = obj.mul;
46
+ expect(method(2)).toBe(20);
47
+ expect(method(3)).toBe(30);
28
48
  expect(fn).toHaveBeenCalledTimes(2);
29
49
  });
30
50
  it("is per-instance — different instances have separate caches", () => {
31
51
  const fn = vi.fn(() => Math.random());
32
- const wrapped = Memo()(fn, mockCtx("rand"));
52
+ const ctx = mockCtx("rand");
53
+ Memo()(fn, ctx);
33
54
  const a = {};
34
55
  const b = {};
35
- const v1 = wrapped.call(a);
36
- const v2 = wrapped.call(b);
56
+ ctx.runInitializers(a);
57
+ ctx.runInitializers(b);
58
+ const methodA = a.rand;
59
+ const methodB = b.rand;
60
+ const v1 = methodA();
61
+ const v2 = methodB();
37
62
  expect(fn).toHaveBeenCalledTimes(2);
38
63
  expect(v1).not.toBe(v2); // different random values per instance
39
64
  });
40
65
  it("serializes no-args calls with __no_args__ key", () => {
41
66
  const fn = vi.fn(() => 42);
42
- const wrapped = Memo()(fn, mockCtx("noop"));
67
+ const ctx = mockCtx("noop");
68
+ Memo()(fn, ctx);
43
69
  const obj = {};
44
- wrapped.call(obj);
45
- wrapped.call(obj);
70
+ ctx.runInitializers(obj);
71
+ const method = obj.noop;
72
+ method();
73
+ method();
46
74
  expect(fn).toHaveBeenCalledTimes(1);
47
75
  });
48
76
  it("serializes object args via JSON.stringify", () => {
49
77
  const fn = vi.fn((o) => JSON.stringify(o));
50
- const wrapped = Memo()(fn, mockCtx("obj"));
78
+ const ctx = mockCtx("obj");
79
+ Memo()(fn, ctx);
51
80
  const obj = {};
52
- wrapped.call(obj, { a: 1 });
53
- wrapped.call(obj, { a: 1 }); // same key
81
+ ctx.runInitializers(obj);
82
+ const method = obj.obj;
83
+ method({ a: 1 });
84
+ method({ a: 1 }); // same key
54
85
  expect(fn).toHaveBeenCalledTimes(1);
55
86
  });
87
+ it("re-evaluates when a reactive signal read inside the method changes", () => {
88
+ const s = signal(1);
89
+ const fn = vi.fn(() => s() * 10);
90
+ const ctx = mockCtx("reactive");
91
+ Memo()(fn, ctx);
92
+ const obj = {};
93
+ ctx.runInitializers(obj);
94
+ const method = obj.reactive;
95
+ expect(method()).toBe(10);
96
+ expect(fn).toHaveBeenCalledTimes(1);
97
+ s.set(5);
98
+ // The computed tracks s() — next read triggers recomputation
99
+ expect(method()).toBe(50);
100
+ expect(fn).toHaveBeenCalledTimes(2);
101
+ });
56
102
  it("serializes symbol args via toString()", () => {
57
103
  const fn = vi.fn((s) => String(s));
58
- const wrapped = Memo()(fn, mockCtx("sym"));
104
+ const ctx = mockCtx("sym");
105
+ Memo()(fn, ctx);
59
106
  const obj = {};
107
+ ctx.runInitializers(obj);
108
+ const method = obj.sym;
60
109
  const sym = Symbol("test");
61
- wrapped.call(obj, sym);
62
- wrapped.call(obj, sym);
110
+ method(sym);
111
+ method(sym);
63
112
  expect(fn).toHaveBeenCalledTimes(1);
64
113
  });
65
114
  });
@@ -1 +1 @@
1
- {"version":3,"file":"memo.test.js","sourceRoot":"","sources":["../../src/__tests__/memo.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memo.test.js","sourceRoot":"","sources":["../../src/__tests__/memo.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, vi } from "vitest";
2
2
  import { StatefulComponent } from "@praxisjs/core";
3
- import { signal } from "@praxisjs/core/internal";
3
+ import { signal, computed } from "@praxisjs/core/internal";
4
4
  import { Watch } from "../functions/watch";
5
5
  import { When } from "../functions/when";
6
6
  import { Computed } from "../properties/computed";
@@ -64,6 +64,30 @@ describe("State decorator", () => {
64
64
  instance.value = "world";
65
65
  expect(instance._stateDirty).toBe(true);
66
66
  });
67
+ it("accepts null as initial value", () => {
68
+ const { ctx, run } = fieldCtx("nullable");
69
+ State()(undefined, ctx);
70
+ const instance = new TestComponent();
71
+ instance.nullable = null;
72
+ run(instance);
73
+ expect(instance.nullable).toBeNull();
74
+ instance.nullable = "set";
75
+ expect(instance.nullable).toBe("set");
76
+ });
77
+ it("multiple State fields on same class are independent", () => {
78
+ const { ctx: ctxA, run: runA } = fieldCtx("a");
79
+ const { ctx: ctxB, run: runB } = fieldCtx("b");
80
+ State()(undefined, ctxA);
81
+ State()(undefined, ctxB);
82
+ const instance = new TestComponent();
83
+ instance.a = 1;
84
+ instance.b = 2;
85
+ runA(instance);
86
+ runB(instance);
87
+ instance.a = 10;
88
+ expect(instance.a).toBe(10);
89
+ expect(instance.b).toBe(2);
90
+ });
67
91
  });
68
92
  // ── Prop ──────────────────────────────────────────────────────────────────────
69
93
  describe("Prop decorator", () => {
@@ -377,5 +401,171 @@ describe("When decorator", () => {
377
401
  expect(mountSpy).toHaveBeenCalled();
378
402
  expect(unmountSpy).toHaveBeenCalled();
379
403
  });
404
+ it("works when the watched prop is a computed value", () => {
405
+ const { ctx, run } = methodCtxFor("onComputed");
406
+ const handler = vi.fn();
407
+ When("doubled")(handler, ctx);
408
+ const s = signal(0);
409
+ const c = computed(() => s() * 2);
410
+ const instance = new TestComponent();
411
+ // Store the computed itself (not the result) so When can call isComputed on it
412
+ instance.doubled = c;
413
+ run(instance);
414
+ instance.onMount?.();
415
+ s.set(5); // doubled becomes 10 (truthy)
416
+ expect(handler).toHaveBeenCalledTimes(1);
417
+ });
418
+ });
419
+ // ── Prop (additional branches) ────────────────────────────────────────────────
420
+ describe("Prop decorator — additional branches", () => {
421
+ it("set() updates the default value (used when no _rawProps entry)", () => {
422
+ const { ctx, run } = fieldCtx("size");
423
+ Prop()(undefined, ctx);
424
+ const instance = new TestComponent();
425
+ instance.size = "sm";
426
+ run(instance);
427
+ // Setter path: updates _defaults
428
+ instance.size = "lg";
429
+ expect(instance.size).toBe("lg");
430
+ });
431
+ });
432
+ // ── History (additional branches) ────────────────────────────────────────────
433
+ describe("History decorator — undo with no previous value", () => {
434
+ it("undo() does nothing when there is no previous value", () => {
435
+ const { ctx, run } = fieldCtx("pts");
436
+ History()(undefined, ctx);
437
+ const s = signal(0);
438
+ const instance = new TestComponent();
439
+ Object.defineProperty(instance, "pts", {
440
+ get: () => s(),
441
+ set: (v) => { s.set(v); },
442
+ configurable: true,
443
+ });
444
+ run(instance);
445
+ const h = instance.ptsHistory;
446
+ // No changes yet — undo should be a no-op
447
+ expect(h.canUndo()).toBe(false);
448
+ expect(() => h.undo()).not.toThrow();
449
+ expect(s()).toBe(0);
450
+ });
451
+ });
452
+ // ── History decorator — multiple fields ───────────────────────────────────────
453
+ describe("History decorator — multiple History properties on same instance", () => {
454
+ it("two History fields are independent", () => {
455
+ const { ctx: ctxX, run: runX } = fieldCtx("x");
456
+ const { ctx: ctxY, run: runY } = fieldCtx("y");
457
+ History()(undefined, ctxX);
458
+ History()(undefined, ctxY);
459
+ const sx = signal(0);
460
+ const sy = signal(0);
461
+ const instance = new TestComponent();
462
+ Object.defineProperty(instance, "x", {
463
+ get: () => sx(), set: (v) => { sx.set(v); }, configurable: true,
464
+ });
465
+ Object.defineProperty(instance, "y", {
466
+ get: () => sy(), set: (v) => { sy.set(v); }, configurable: true,
467
+ });
468
+ runX(instance);
469
+ runY(instance);
470
+ // Access history first to trigger lazy creation and subscribe to signals
471
+ const hx = instance.xHistory;
472
+ const hy = instance.yHistory;
473
+ sx.set(5);
474
+ sy.set(10);
475
+ expect(hx.canUndo()).toBe(true);
476
+ expect(hy.canUndo()).toBe(true);
477
+ expect(hx.current()).toBe(5);
478
+ expect(hy.current()).toBe(10);
479
+ });
480
+ it("clear() after undo removes redo entries", () => {
481
+ const { ctx, run } = fieldCtx("val");
482
+ History()(undefined, ctx);
483
+ const s = signal(0);
484
+ const instance = new TestComponent();
485
+ Object.defineProperty(instance, "val", {
486
+ get: () => s(), set: (v) => { s.set(v); }, configurable: true,
487
+ });
488
+ run(instance);
489
+ const h = instance.valHistory;
490
+ s.set(1);
491
+ s.set(2);
492
+ h.undo();
493
+ expect(h.canRedo()).toBe(true);
494
+ h.clear();
495
+ expect(h.canRedo()).toBe(false);
496
+ expect(h.canUndo()).toBe(false);
497
+ });
498
+ });
499
+ // ── Watch (cleanup + multi-prop non-watched) ──────────────────────────────────
500
+ describe("Watch decorator — onUnmount cleanup", () => {
501
+ it("stops firing after onUnmount is called", () => {
502
+ const { ctx, run } = methodCtx("onCount");
503
+ const handler = vi.fn();
504
+ Watch("count")(handler, ctx);
505
+ const s = signal(0);
506
+ const instance = new TestComponent();
507
+ Object.defineProperty(instance, "count", { get: () => s(), configurable: true });
508
+ run(instance);
509
+ instance.onMount?.();
510
+ s.set(1);
511
+ expect(handler).toHaveBeenCalledTimes(1);
512
+ instance.onUnmount?.();
513
+ s.set(2);
514
+ // After unmount the effect is stopped — handler must NOT fire again
515
+ expect(handler).toHaveBeenCalledTimes(1);
516
+ });
517
+ it("preserves existing onUnmount when adding cleanup", () => {
518
+ const { ctx, run } = methodCtx("onVal");
519
+ const handler = vi.fn();
520
+ Watch("val")(handler, ctx);
521
+ const s = signal(0);
522
+ const instance = new TestComponent();
523
+ Object.defineProperty(instance, "val", { get: () => s(), configurable: true });
524
+ run(instance);
525
+ const unmountSpy = vi.fn();
526
+ const prevUnmount = instance.onUnmount?.bind(instance);
527
+ instance.onUnmount = function () { unmountSpy(); prevUnmount?.(); };
528
+ instance.onMount?.();
529
+ instance.onUnmount?.();
530
+ expect(unmountSpy).toHaveBeenCalled();
531
+ });
532
+ it("multi-prop watch does NOT fire when an unwatched prop changes", () => {
533
+ const { ctx, run } = methodCtx("onAB");
534
+ const handler = vi.fn();
535
+ Watch("a", "b")(handler, ctx);
536
+ const sa = signal(0);
537
+ const sb = signal(0);
538
+ const sc = signal(0); // not watched
539
+ const instance = new TestComponent();
540
+ Object.defineProperty(instance, "a", { get: () => sa(), configurable: true });
541
+ Object.defineProperty(instance, "b", { get: () => sb(), configurable: true });
542
+ Object.defineProperty(instance, "c", { get: () => sc(), configurable: true });
543
+ run(instance);
544
+ instance.onMount?.();
545
+ sc.set(99); // unwatched prop — handler must NOT fire
546
+ expect(handler).not.toHaveBeenCalled();
547
+ sa.set(1); // watched — handler fires
548
+ expect(handler).toHaveBeenCalledTimes(1);
549
+ });
550
+ });
551
+ // ── Watch (additional branches — computed readValue) ──────────────────────────
552
+ describe("Watch decorator — reading computed values", () => {
553
+ it("reads the value of a computed field (not the computed object)", () => {
554
+ const { ctx, run } = methodCtx("onDoubled");
555
+ const handler = vi.fn();
556
+ Watch("doubled")(handler, ctx);
557
+ const s = signal(1);
558
+ const c = computed(() => s() * 2);
559
+ const instance = new TestComponent();
560
+ // Watch reads instance["doubled"] — if it's a computed, it calls it
561
+ Object.defineProperty(instance, "doubled", {
562
+ get: () => c,
563
+ configurable: true,
564
+ });
565
+ run(instance);
566
+ instance.onMount?.();
567
+ s.set(5); // c() goes from 2 to 10 → triggers handler
568
+ expect(handler).toHaveBeenCalledTimes(1);
569
+ });
380
570
  });
381
571
  //# sourceMappingURL=properties.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"properties.test.js","sourceRoot":"","sources":["../../src/__tests__/properties.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.test.js","sourceRoot":"","sources":["../../src/__tests__/properties.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resource.test.d.ts.map