@praxisjs/composables 0.1.5 → 1.0.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.
@@ -1,167 +1,211 @@
1
1
  // @vitest-environment jsdom
2
- import { beforeEach, afterEach, describe, it, expect, vi } from "vitest";
3
- import { createRef, useWindowSize, useScrollPosition, useFocus, useElementSize, useIntersection } from "../dom";
4
- // ---------- createRef ----------
5
- describe("createRef", () => {
6
- it("starts with current = null", () => {
7
- const ref = createRef();
8
- expect(ref.current).toBeNull();
9
- });
10
- it("can be assigned an element", () => {
11
- const ref = createRef();
12
- const el = document.createElement("div");
13
- ref.current = el;
14
- expect(ref.current).toBe(el);
15
- });
16
- });
17
- // ---------- useWindowSize ----------
18
- describe("useWindowSize", () => {
19
- it("returns the current window dimensions", () => {
20
- Object.defineProperty(window, "innerWidth", { writable: true, configurable: true, value: 1024 });
21
- Object.defineProperty(window, "innerHeight", { writable: true, configurable: true, value: 768 });
22
- const { width, height } = useWindowSize();
2
+ import { describe, it, expect, vi, beforeEach } from "vitest";
3
+ import { signal } from "@praxisjs/core/internal";
4
+ import { WindowSize, ScrollPosition, ElementSize, Intersection, Focus } from "../dom";
5
+ // ── WindowSize ────────────────────────────────────────────────────────────────
6
+ describe("WindowSize", () => {
7
+ it("reads initial window dimensions", () => {
8
+ Object.defineProperty(window, "innerWidth", { value: 1024, configurable: true });
9
+ Object.defineProperty(window, "innerHeight", { value: 768, configurable: true });
10
+ const ws = new WindowSize();
11
+ const { width, height } = ws.setup();
23
12
  expect(width()).toBe(1024);
24
13
  expect(height()).toBe(768);
25
14
  });
26
15
  it("updates on resize event", () => {
27
- Object.defineProperty(window, "innerWidth", { writable: true, configurable: true, value: 800 });
28
- Object.defineProperty(window, "innerHeight", { writable: true, configurable: true, value: 600 });
29
- const { width, height } = useWindowSize();
30
- Object.defineProperty(window, "innerWidth", { writable: true, configurable: true, value: 1280 });
31
- Object.defineProperty(window, "innerHeight", { writable: true, configurable: true, value: 720 });
16
+ Object.defineProperty(window, "innerWidth", { value: 800, configurable: true });
17
+ Object.defineProperty(window, "innerHeight", { value: 600, configurable: true });
18
+ const ws = new WindowSize();
19
+ const { width, height } = ws.setup();
20
+ Object.defineProperty(window, "innerWidth", { value: 1280, configurable: true });
21
+ Object.defineProperty(window, "innerHeight", { value: 900, configurable: true });
32
22
  window.dispatchEvent(new Event("resize"));
33
23
  expect(width()).toBe(1280);
34
- expect(height()).toBe(720);
24
+ expect(height()).toBe(900);
25
+ });
26
+ it("removes listener on unmount", () => {
27
+ const remove = vi.spyOn(window, "removeEventListener");
28
+ const ws = new WindowSize();
29
+ ws.setup();
30
+ ws.onUnmount();
31
+ expect(remove).toHaveBeenCalledWith("resize", expect.any(Function));
35
32
  });
36
33
  });
37
- // ---------- useScrollPosition ----------
38
- describe("useScrollPosition", () => {
34
+ // ── ScrollPosition ────────────────────────────────────────────────────────────
35
+ describe("ScrollPosition", () => {
39
36
  it("starts at (0, 0)", () => {
40
- const { x, y } = useScrollPosition(window);
37
+ const sp = new ScrollPosition(window);
38
+ const { x, y } = sp.setup();
41
39
  expect(x()).toBe(0);
42
40
  expect(y()).toBe(0);
43
41
  });
44
- it("updates on element scroll", () => {
42
+ it("updates on scroll event for window", () => {
43
+ const sp = new ScrollPosition(window);
44
+ const { x, y } = sp.setup();
45
+ Object.defineProperty(window, "scrollX", { value: 100, configurable: true });
46
+ Object.defineProperty(window, "scrollY", { value: 200, configurable: true });
47
+ window.dispatchEvent(new Event("scroll"));
48
+ expect(x()).toBe(100);
49
+ expect(y()).toBe(200);
50
+ });
51
+ it("updates on scroll event for element", () => {
45
52
  const el = document.createElement("div");
46
- const { x, y } = useScrollPosition(el);
47
- Object.defineProperty(el, "scrollLeft", { configurable: true, value: 50 });
48
- Object.defineProperty(el, "scrollTop", { configurable: true, value: 80 });
53
+ const sp = new ScrollPosition(el);
54
+ const { x, y } = sp.setup();
55
+ Object.defineProperty(el, "scrollLeft", { value: 50, configurable: true });
56
+ Object.defineProperty(el, "scrollTop", { value: 75, configurable: true });
49
57
  el.dispatchEvent(new Event("scroll"));
50
58
  expect(x()).toBe(50);
51
- expect(y()).toBe(80);
52
- });
53
- });
54
- // ---------- useFocus ----------
55
- describe("useFocus", () => {
56
- it("starts as not focused", () => {
57
- const el = document.createElement("input");
58
- document.body.appendChild(el);
59
- const ref = { current: el };
60
- const focused = useFocus(ref);
61
- expect(focused()).toBe(false);
62
- document.body.removeChild(el);
63
- });
64
- it("becomes true on focus event", () => {
65
- const el = document.createElement("input");
66
- document.body.appendChild(el);
67
- const ref = { current: el };
68
- const focused = useFocus(ref);
69
- el.dispatchEvent(new FocusEvent("focus"));
70
- expect(focused()).toBe(true);
71
- document.body.removeChild(el);
72
- });
73
- it("becomes false on blur event", () => {
74
- const el = document.createElement("input");
75
- document.body.appendChild(el);
76
- const ref = { current: el };
77
- const focused = useFocus(ref);
78
- el.dispatchEvent(new FocusEvent("focus"));
79
- el.dispatchEvent(new FocusEvent("blur"));
80
- expect(focused()).toBe(false);
81
- document.body.removeChild(el);
59
+ expect(y()).toBe(75);
82
60
  });
83
- it("does nothing when ref.current is null", () => {
84
- const ref = { current: null };
85
- expect(() => useFocus(ref)).not.toThrow();
61
+ it("removes listener on unmount", () => {
62
+ const el = document.createElement("div");
63
+ const remove = vi.spyOn(el, "removeEventListener");
64
+ const sp = new ScrollPosition(el);
65
+ sp.setup();
66
+ sp.onUnmount();
67
+ expect(remove).toHaveBeenCalledWith("scroll", expect.any(Function));
86
68
  });
87
69
  });
88
- // ---------- useElementSize ----------
89
- describe("useElementSize", () => {
90
- let observerCallback = () => { };
91
- let mockDisconnect;
70
+ // ── ElementSize ───────────────────────────────────────────────────────────────
71
+ describe("ElementSize", () => {
72
+ let observerCallback;
92
73
  beforeEach(() => {
93
- mockDisconnect = vi.fn();
94
- observerCallback = () => { };
95
- // Class-based mock so `new ResizeObserver(cb)` works correctly
96
- globalThis.ResizeObserver = class {
97
- constructor(cb) { observerCallback = cb; }
98
- observe = vi.fn();
99
- disconnect = mockDisconnect;
100
- };
101
- });
102
- afterEach(() => {
103
- // @ts-expect-error – removing test stub
104
- delete globalThis.ResizeObserver;
105
- });
106
- it("starts at (0, 0) when ref.current is null", () => {
74
+ vi.stubGlobal("ResizeObserver", class {
75
+ constructor(cb) {
76
+ this.observe = vi.fn();
77
+ this.disconnect = vi.fn();
78
+ observerCallback = cb;
79
+ }
80
+ });
81
+ });
82
+ it("starts at (0, 0) with no element", () => {
107
83
  const ref = { current: null };
108
- const { width, height } = useElementSize(ref);
84
+ const es = new ElementSize(ref);
85
+ const { width, height } = es.setup();
109
86
  expect(width()).toBe(0);
110
87
  expect(height()).toBe(0);
111
88
  });
112
- it("calls stop() to disconnect the ResizeObserver", () => {
113
- const el = document.createElement("div");
114
- const ref = { current: el };
115
- const { stop } = useElementSize(ref);
116
- stop();
117
- expect(mockDisconnect).toHaveBeenCalled();
118
- });
119
- it("updates width and height when ResizeObserver fires", () => {
89
+ it("updates via ResizeObserver callback", () => {
120
90
  const el = document.createElement("div");
121
91
  const ref = { current: el };
122
- const { width, height } = useElementSize(ref);
123
- observerCallback([{ contentRect: { width: 300, height: 200 } }], null);
92
+ const es = new ElementSize(ref);
93
+ const { width, height } = es.setup();
94
+ observerCallback([{ contentRect: { width: 300, height: 150 } }], {});
124
95
  expect(width()).toBe(300);
125
- expect(height()).toBe(200);
96
+ expect(height()).toBe(150);
97
+ });
98
+ it("disconnects observer on unmount", () => {
99
+ const disconnect = vi.fn();
100
+ vi.stubGlobal("ResizeObserver", class {
101
+ constructor(cb) {
102
+ this.observe = vi.fn();
103
+ this.disconnect = disconnect;
104
+ observerCallback = cb;
105
+ }
106
+ });
107
+ const ref = { current: null };
108
+ const es = new ElementSize(ref);
109
+ es.setup();
110
+ es.onUnmount();
111
+ expect(disconnect).toHaveBeenCalled();
126
112
  });
127
113
  });
128
- // ---------- useIntersection ----------
129
- describe("useIntersection", () => {
130
- let intersectionCallback = () => { };
131
- let capturedOptions;
114
+ // ── Intersection ──────────────────────────────────────────────────────────────
115
+ describe("Intersection", () => {
116
+ let observerCallback;
132
117
  beforeEach(() => {
133
- intersectionCallback = () => { };
134
- capturedOptions = undefined;
135
- globalThis.IntersectionObserver = class {
136
- constructor(cb, opts) {
137
- intersectionCallback = cb;
138
- capturedOptions = opts;
118
+ vi.stubGlobal("IntersectionObserver", class {
119
+ constructor(cb) {
120
+ this.observe = vi.fn();
121
+ this.disconnect = vi.fn();
122
+ observerCallback = cb;
139
123
  }
140
- observe = vi.fn();
141
- disconnect = vi.fn();
142
- };
143
- });
144
- afterEach(() => {
145
- // @ts-expect-error – removing test stub
146
- delete globalThis.IntersectionObserver;
124
+ });
147
125
  });
148
- it("starts as false when ref.current is null", () => {
126
+ it("starts as not visible", () => {
149
127
  const ref = { current: null };
150
- const visible = useIntersection(ref);
128
+ const int = new Intersection(ref);
129
+ const { visible } = int.setup();
151
130
  expect(visible()).toBe(false);
152
131
  });
153
- it("becomes true when IntersectionObserver fires with isIntersecting=true", () => {
132
+ it("becomes visible when intersecting", () => {
154
133
  const el = document.createElement("div");
155
134
  const ref = { current: el };
156
- const visible = useIntersection(ref);
157
- intersectionCallback([{ isIntersecting: true }], null);
135
+ const int = new Intersection(ref);
136
+ const { visible } = int.setup();
137
+ observerCallback([{ isIntersecting: true }], {});
158
138
  expect(visible()).toBe(true);
159
139
  });
160
- it("passes options to IntersectionObserver", () => {
140
+ it("disconnects on unmount", () => {
141
+ const disconnect = vi.fn();
142
+ vi.stubGlobal("IntersectionObserver", class {
143
+ constructor(cb) {
144
+ this.observe = vi.fn();
145
+ this.disconnect = disconnect;
146
+ observerCallback = cb;
147
+ }
148
+ });
149
+ const ref = { current: null };
150
+ const int = new Intersection(ref);
151
+ int.setup();
152
+ int.onUnmount();
153
+ expect(disconnect).toHaveBeenCalled();
154
+ });
155
+ });
156
+ // ── Focus ─────────────────────────────────────────────────────────────────────
157
+ describe("Focus", () => {
158
+ it("starts as not focused", () => {
159
+ const el = document.createElement("input");
160
+ const ref = { current: el };
161
+ const focus = new Focus(ref);
162
+ const { focused } = focus.setup();
163
+ expect(focused()).toBe(false);
164
+ });
165
+ it("sets focused=true on focus event", () => {
166
+ const el = document.createElement("input");
167
+ document.body.appendChild(el);
168
+ const ref = { current: el };
169
+ const focus = new Focus(ref);
170
+ const { focused } = focus.setup();
171
+ el.dispatchEvent(new Event("focus"));
172
+ expect(focused()).toBe(true);
173
+ document.body.removeChild(el);
174
+ });
175
+ it("sets focused=false on blur event", () => {
176
+ const el = document.createElement("input");
177
+ document.body.appendChild(el);
178
+ const ref = { current: el };
179
+ const focus = new Focus(ref);
180
+ const { focused } = focus.setup();
181
+ el.dispatchEvent(new Event("focus"));
182
+ el.dispatchEvent(new Event("blur"));
183
+ expect(focused()).toBe(false);
184
+ document.body.removeChild(el);
185
+ });
186
+ it("does not throw when ref is null", () => {
161
187
  const ref = { current: null };
162
- const options = { threshold: 0.5 };
163
- useIntersection(ref, options);
164
- expect(capturedOptions).toEqual(options);
188
+ const focus = new Focus(ref);
189
+ expect(() => focus.setup()).not.toThrow();
190
+ });
191
+ it("removes focus/blur listeners when reactive ref changes (effect cleanup)", () => {
192
+ const el1 = document.createElement("input");
193
+ document.body.appendChild(el1);
194
+ // Make ref.current reactive so the effect tracks it and re-runs on change
195
+ const refSignal = signal(el1);
196
+ const ref = { get current() { return refSignal(); } };
197
+ const focus = new Focus(ref);
198
+ focus.setup();
199
+ const removeEl1 = vi.spyOn(el1, "removeEventListener");
200
+ // Changing the signal causes the effect to re-run, calling cleanup for el1
201
+ // This covers the cleanup function at dom.ts:134-135
202
+ const el2 = document.createElement("input");
203
+ document.body.appendChild(el2);
204
+ refSignal.set(el2);
205
+ expect(removeEl1).toHaveBeenCalledWith("focus", expect.any(Function));
206
+ expect(removeEl1).toHaveBeenCalledWith("blur", expect.any(Function));
207
+ document.body.removeChild(el1);
208
+ document.body.removeChild(el2);
165
209
  });
166
210
  });
167
211
  //# sourceMappingURL=dom.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.test.js","sourceRoot":"","sources":["../../src/__tests__/dom.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.test.js","sourceRoot":"","sources":["../../src/__tests__/dom.test.ts"],"names":[],"mappings":"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"}