@react-text-game/ui 0.3.1 → 0.3.4
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.
- package/dist/components/InteractiveMapComponent/Hotspot.d.ts.map +1 -1
- package/dist/components/InteractiveMapComponent/Hotspot.js +1 -2
- package/dist/components/InteractiveMapComponent/Hotspot.js.map +1 -1
- package/dist/components/InteractiveMapComponent/HotspotMenu.d.ts.map +1 -1
- package/dist/components/InteractiveMapComponent/HotspotMenu.js +2 -7
- package/dist/components/InteractiveMapComponent/HotspotMenu.js.map +1 -1
- package/dist/components/InteractiveMapComponent/HotspotMenuItem.d.ts +6 -0
- package/dist/components/InteractiveMapComponent/HotspotMenuItem.d.ts.map +1 -0
- package/dist/components/InteractiveMapComponent/HotspotMenuItem.js +13 -0
- package/dist/components/InteractiveMapComponent/HotspotMenuItem.js.map +1 -0
- package/dist/components/InteractiveMapComponent/ImageHotspot.d.ts +6 -1
- package/dist/components/InteractiveMapComponent/ImageHotspot.d.ts.map +1 -1
- package/dist/components/InteractiveMapComponent/ImageHotspot.js +36 -14
- package/dist/components/InteractiveMapComponent/ImageHotspot.js.map +1 -1
- package/dist/components/InteractiveMapComponent/LabelHotspot.d.ts +4 -1
- package/dist/components/InteractiveMapComponent/LabelHotspot.d.ts.map +1 -1
- package/dist/components/InteractiveMapComponent/LabelHotspot.js +6 -4
- package/dist/components/InteractiveMapComponent/LabelHotspot.js.map +1 -1
- package/dist/components/InteractiveMapComponent/SideHotspot.d.ts.map +1 -1
- package/dist/components/InteractiveMapComponent/SideHotspot.js +1 -2
- package/dist/components/InteractiveMapComponent/SideHotspot.js.map +1 -1
- package/dist/components/StoryComponent/components/Actions.d.ts.map +1 -1
- package/dist/components/StoryComponent/components/Actions.js +7 -2
- package/dist/components/StoryComponent/components/Actions.js.map +1 -1
- package/dist/components/common/Tooltip.d.ts +3 -3
- package/dist/components/common/Tooltip.d.ts.map +1 -1
- package/dist/components/common/Tooltip.js +124 -23
- package/dist/components/common/Tooltip.js.map +1 -1
- package/dist/styles/index.css +4 -45
- package/dist/tests/InteractiveMapComponent/ImageHotspot.test.d.ts +2 -0
- package/dist/tests/InteractiveMapComponent/ImageHotspot.test.d.ts.map +1 -0
- package/dist/tests/InteractiveMapComponent/ImageHotspot.test.js +460 -0
- package/dist/tests/InteractiveMapComponent/ImageHotspot.test.js.map +1 -0
- package/dist/tests/common/Tooltip.test.d.ts +2 -0
- package/dist/tests/common/Tooltip.test.d.ts.map +1 -0
- package/dist/tests/common/Tooltip.test.js +400 -0
- package/dist/tests/common/Tooltip.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
import { cleanup, render, screen, waitFor } from "@testing-library/react";
|
|
2
|
+
import userEvent from "@testing-library/user-event";
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, test } from "bun:test";
|
|
4
|
+
import { createElement, createRef } from "react";
|
|
5
|
+
import { Tooltip } from "../../components/common/Tooltip";
|
|
6
|
+
describe("Tooltip", () => {
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
// Clean up document.body between tests since tooltips are portaled
|
|
9
|
+
document.body.innerHTML = "";
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
cleanup();
|
|
13
|
+
});
|
|
14
|
+
describe("Basic Rendering", () => {
|
|
15
|
+
test("does not render when disabled is true", () => {
|
|
16
|
+
const targetRef = createRef();
|
|
17
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
18
|
+
targetRef,
|
|
19
|
+
content: "Tooltip content",
|
|
20
|
+
disabled: true,
|
|
21
|
+
})));
|
|
22
|
+
// Tooltip should not be in the document
|
|
23
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
24
|
+
});
|
|
25
|
+
test("does not render when not visible", () => {
|
|
26
|
+
const targetRef = createRef();
|
|
27
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
28
|
+
targetRef,
|
|
29
|
+
content: "Tooltip content",
|
|
30
|
+
disabled: false,
|
|
31
|
+
})));
|
|
32
|
+
// Tooltip should not be visible initially
|
|
33
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
34
|
+
});
|
|
35
|
+
test("renders when visible after hover", async () => {
|
|
36
|
+
const user = userEvent.setup();
|
|
37
|
+
const targetRef = createRef();
|
|
38
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
39
|
+
targetRef,
|
|
40
|
+
content: "Tooltip content",
|
|
41
|
+
disabled: false,
|
|
42
|
+
})));
|
|
43
|
+
const button = screen.getByText("Hover me");
|
|
44
|
+
await user.hover(button);
|
|
45
|
+
await waitFor(() => {
|
|
46
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
47
|
+
expect(screen.getByText("Tooltip content")).toBeTruthy();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
test("applies custom className", async () => {
|
|
51
|
+
const user = userEvent.setup();
|
|
52
|
+
const targetRef = createRef();
|
|
53
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
54
|
+
targetRef,
|
|
55
|
+
content: "Tooltip content",
|
|
56
|
+
className: "custom-tooltip-class",
|
|
57
|
+
})));
|
|
58
|
+
const button = screen.getByText("Hover me");
|
|
59
|
+
await user.hover(button);
|
|
60
|
+
await waitFor(() => {
|
|
61
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
62
|
+
expect(tooltip.className).toContain("custom-tooltip-class");
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
test("renders with ReactNode content", async () => {
|
|
66
|
+
const user = userEvent.setup();
|
|
67
|
+
const targetRef = createRef();
|
|
68
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
69
|
+
targetRef,
|
|
70
|
+
content: createElement("strong", null, "Bold tooltip"),
|
|
71
|
+
})));
|
|
72
|
+
const button = screen.getByText("Hover me");
|
|
73
|
+
await user.hover(button);
|
|
74
|
+
await waitFor(() => {
|
|
75
|
+
expect(screen.getByText("Bold tooltip")).toBeTruthy();
|
|
76
|
+
const strong = screen.getByText("Bold tooltip").tagName;
|
|
77
|
+
expect(strong).toBe("STRONG");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe("Visibility Control", () => {
|
|
82
|
+
test("shows tooltip on mouseenter", async () => {
|
|
83
|
+
const user = userEvent.setup();
|
|
84
|
+
const targetRef = createRef();
|
|
85
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
86
|
+
targetRef,
|
|
87
|
+
content: "Tooltip content",
|
|
88
|
+
})));
|
|
89
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
90
|
+
const button = screen.getByText("Hover me");
|
|
91
|
+
await user.hover(button);
|
|
92
|
+
await waitFor(() => {
|
|
93
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
test("hides tooltip on mouseleave", async () => {
|
|
97
|
+
const user = userEvent.setup();
|
|
98
|
+
const targetRef = createRef();
|
|
99
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
100
|
+
targetRef,
|
|
101
|
+
content: "Tooltip content",
|
|
102
|
+
})));
|
|
103
|
+
const button = screen.getByText("Hover me");
|
|
104
|
+
await user.hover(button);
|
|
105
|
+
await waitFor(() => {
|
|
106
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
107
|
+
});
|
|
108
|
+
await user.unhover(button);
|
|
109
|
+
await waitFor(() => {
|
|
110
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
test("does not show tooltip when disabled", async () => {
|
|
114
|
+
const user = userEvent.setup();
|
|
115
|
+
const targetRef = createRef();
|
|
116
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
117
|
+
targetRef,
|
|
118
|
+
content: "Tooltip content",
|
|
119
|
+
disabled: true,
|
|
120
|
+
})));
|
|
121
|
+
const button = screen.getByText("Hover me");
|
|
122
|
+
await user.hover(button);
|
|
123
|
+
// Wait a bit to ensure it doesn't appear
|
|
124
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
125
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe("Placement Positioning", () => {
|
|
129
|
+
const placements = [
|
|
130
|
+
"top",
|
|
131
|
+
"top-right",
|
|
132
|
+
"top-left",
|
|
133
|
+
"bottom",
|
|
134
|
+
"bottom-right",
|
|
135
|
+
"bottom-left",
|
|
136
|
+
"right",
|
|
137
|
+
"left",
|
|
138
|
+
];
|
|
139
|
+
placements.forEach((placement) => {
|
|
140
|
+
test(`renders with ${placement} placement`, async () => {
|
|
141
|
+
const user = userEvent.setup();
|
|
142
|
+
const targetRef = createRef();
|
|
143
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
144
|
+
targetRef,
|
|
145
|
+
content: "Tooltip content",
|
|
146
|
+
placement,
|
|
147
|
+
})));
|
|
148
|
+
const button = screen.getByText("Hover me");
|
|
149
|
+
await user.hover(button);
|
|
150
|
+
await waitFor(() => {
|
|
151
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
152
|
+
expect(tooltip).toBeTruthy();
|
|
153
|
+
// Tooltip should have positioning styles
|
|
154
|
+
expect(tooltip.style.top).toBeTruthy();
|
|
155
|
+
expect(tooltip.style.left).toBeTruthy();
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
test("defaults to top placement when not specified", async () => {
|
|
160
|
+
const user = userEvent.setup();
|
|
161
|
+
const targetRef = createRef();
|
|
162
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
163
|
+
targetRef,
|
|
164
|
+
content: "Tooltip content",
|
|
165
|
+
})));
|
|
166
|
+
const button = screen.getByText("Hover me");
|
|
167
|
+
await user.hover(button);
|
|
168
|
+
await waitFor(() => {
|
|
169
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe("Arrow Rendering", () => {
|
|
174
|
+
test("renders arrow element", async () => {
|
|
175
|
+
const user = userEvent.setup();
|
|
176
|
+
const targetRef = createRef();
|
|
177
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
178
|
+
targetRef,
|
|
179
|
+
content: "Tooltip content",
|
|
180
|
+
})));
|
|
181
|
+
const button = screen.getByText("Hover me");
|
|
182
|
+
await user.hover(button);
|
|
183
|
+
await waitFor(() => {
|
|
184
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
185
|
+
const arrow = tooltip.querySelector(".rotate-45");
|
|
186
|
+
expect(arrow).toBeTruthy();
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
test("arrow has correct styles", async () => {
|
|
190
|
+
const user = userEvent.setup();
|
|
191
|
+
const targetRef = createRef();
|
|
192
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
193
|
+
targetRef,
|
|
194
|
+
content: "Tooltip content",
|
|
195
|
+
})));
|
|
196
|
+
const button = screen.getByText("Hover me");
|
|
197
|
+
await user.hover(button);
|
|
198
|
+
await waitFor(() => {
|
|
199
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
200
|
+
const arrow = tooltip.querySelector(".rotate-45");
|
|
201
|
+
expect(arrow).toBeTruthy();
|
|
202
|
+
// Arrow should have position styles
|
|
203
|
+
expect(arrow.style.top).toBeTruthy();
|
|
204
|
+
expect(arrow.style.left).toBeTruthy();
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
describe("Portal Behavior", () => {
|
|
209
|
+
test("renders tooltip in document.body via portal", async () => {
|
|
210
|
+
const user = userEvent.setup();
|
|
211
|
+
const targetRef = createRef();
|
|
212
|
+
const { container } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
213
|
+
targetRef,
|
|
214
|
+
content: "Tooltip content",
|
|
215
|
+
})));
|
|
216
|
+
const button = screen.getByText("Hover me");
|
|
217
|
+
await user.hover(button);
|
|
218
|
+
await waitFor(() => {
|
|
219
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
220
|
+
expect(tooltip).toBeTruthy();
|
|
221
|
+
// Tooltip should be in document.body, not in the container
|
|
222
|
+
expect(container.contains(tooltip)).toBe(false);
|
|
223
|
+
expect(document.body.contains(tooltip)).toBe(true);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
describe("Edge Cases", () => {
|
|
228
|
+
test("handles null targetRef gracefully", () => {
|
|
229
|
+
const targetRef = createRef();
|
|
230
|
+
// Don't attach the ref to anything
|
|
231
|
+
render(createElement("div", null, createElement(Tooltip, {
|
|
232
|
+
targetRef,
|
|
233
|
+
content: "Tooltip content",
|
|
234
|
+
})));
|
|
235
|
+
// Should not error, just not render
|
|
236
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
237
|
+
});
|
|
238
|
+
test("cleans up event listeners on unmount", async () => {
|
|
239
|
+
const user = userEvent.setup();
|
|
240
|
+
const targetRef = createRef();
|
|
241
|
+
const { unmount } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
242
|
+
targetRef,
|
|
243
|
+
content: "Tooltip content",
|
|
244
|
+
})));
|
|
245
|
+
const button = screen.getByText("Hover me");
|
|
246
|
+
await user.hover(button);
|
|
247
|
+
await waitFor(() => {
|
|
248
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
249
|
+
});
|
|
250
|
+
// Unmount the component
|
|
251
|
+
unmount();
|
|
252
|
+
// Tooltip should be removed
|
|
253
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
254
|
+
});
|
|
255
|
+
test("shows tooltip when disabled changes from true to false", async () => {
|
|
256
|
+
const user = userEvent.setup();
|
|
257
|
+
const targetRef = createRef();
|
|
258
|
+
const { rerender } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
259
|
+
targetRef,
|
|
260
|
+
content: "Tooltip content",
|
|
261
|
+
disabled: true,
|
|
262
|
+
})));
|
|
263
|
+
const button = screen.getByText("Hover me");
|
|
264
|
+
await user.hover(button);
|
|
265
|
+
expect(screen.queryByTestId("tooltip-content")).toBeNull();
|
|
266
|
+
// Unhover first
|
|
267
|
+
await user.unhover(button);
|
|
268
|
+
// Re-render with disabled: false
|
|
269
|
+
rerender(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
270
|
+
targetRef,
|
|
271
|
+
content: "Tooltip content",
|
|
272
|
+
disabled: false,
|
|
273
|
+
})));
|
|
274
|
+
// Hover again to trigger the tooltip
|
|
275
|
+
await user.hover(button);
|
|
276
|
+
await waitFor(() => {
|
|
277
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
test("handles placement change while visible", async () => {
|
|
281
|
+
const user = userEvent.setup();
|
|
282
|
+
const targetRef = createRef();
|
|
283
|
+
const { rerender } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
284
|
+
targetRef,
|
|
285
|
+
content: "Tooltip content",
|
|
286
|
+
placement: "top",
|
|
287
|
+
})));
|
|
288
|
+
const button = screen.getByText("Hover me");
|
|
289
|
+
await user.hover(button);
|
|
290
|
+
await waitFor(() => {
|
|
291
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
292
|
+
});
|
|
293
|
+
// Change placement
|
|
294
|
+
rerender(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
295
|
+
targetRef,
|
|
296
|
+
content: "Tooltip content",
|
|
297
|
+
placement: "bottom",
|
|
298
|
+
})));
|
|
299
|
+
await waitFor(() => {
|
|
300
|
+
// Position should update based on new placement
|
|
301
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
test("tooltip has correct ARIA attributes", async () => {
|
|
305
|
+
const user = userEvent.setup();
|
|
306
|
+
const targetRef = createRef();
|
|
307
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
308
|
+
targetRef,
|
|
309
|
+
content: "Tooltip content",
|
|
310
|
+
})));
|
|
311
|
+
const button = screen.getByText("Hover me");
|
|
312
|
+
await user.hover(button);
|
|
313
|
+
await waitFor(() => {
|
|
314
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
315
|
+
expect(tooltip.getAttribute("role")).toBe("tooltip");
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
test("handles rapid hover/unhover without errors", async () => {
|
|
319
|
+
const user = userEvent.setup();
|
|
320
|
+
const targetRef = createRef();
|
|
321
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
322
|
+
targetRef,
|
|
323
|
+
content: "Tooltip content",
|
|
324
|
+
})));
|
|
325
|
+
const button = screen.getByText("Hover me");
|
|
326
|
+
// Rapidly hover and unhover
|
|
327
|
+
await user.hover(button);
|
|
328
|
+
await user.unhover(button);
|
|
329
|
+
await user.hover(button);
|
|
330
|
+
await user.unhover(button);
|
|
331
|
+
await user.hover(button);
|
|
332
|
+
// Should handle this gracefully
|
|
333
|
+
await waitFor(() => {
|
|
334
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
335
|
+
});
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
describe("Styling", () => {
|
|
339
|
+
test("applies correct CSS classes", async () => {
|
|
340
|
+
const user = userEvent.setup();
|
|
341
|
+
const targetRef = createRef();
|
|
342
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
343
|
+
targetRef,
|
|
344
|
+
content: "Tooltip content",
|
|
345
|
+
})));
|
|
346
|
+
const button = screen.getByText("Hover me");
|
|
347
|
+
await user.hover(button);
|
|
348
|
+
await waitFor(() => {
|
|
349
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
350
|
+
expect(tooltip.className).toContain("fixed");
|
|
351
|
+
expect(tooltip.className).toContain("z-50");
|
|
352
|
+
expect(tooltip.className).toContain("bg-popover");
|
|
353
|
+
expect(tooltip.className).toContain("border");
|
|
354
|
+
});
|
|
355
|
+
});
|
|
356
|
+
test("has visible opacity when shown", async () => {
|
|
357
|
+
const user = userEvent.setup();
|
|
358
|
+
const targetRef = createRef();
|
|
359
|
+
render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
360
|
+
targetRef,
|
|
361
|
+
content: "Tooltip content",
|
|
362
|
+
})));
|
|
363
|
+
const button = screen.getByText("Hover me");
|
|
364
|
+
await user.hover(button);
|
|
365
|
+
await waitFor(() => {
|
|
366
|
+
const tooltip = screen.getByTestId("tooltip-content");
|
|
367
|
+
expect(tooltip.className).toContain("opacity-100");
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
describe("Different Target Types", () => {
|
|
372
|
+
test("works with HTMLDivElement ref", async () => {
|
|
373
|
+
const user = userEvent.setup();
|
|
374
|
+
const targetRef = createRef();
|
|
375
|
+
render(createElement("div", null, createElement("div", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
376
|
+
targetRef,
|
|
377
|
+
content: "Tooltip content",
|
|
378
|
+
})));
|
|
379
|
+
const div = screen.getByText("Hover me");
|
|
380
|
+
await user.hover(div);
|
|
381
|
+
await waitFor(() => {
|
|
382
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
test("works with HTMLElement ref", async () => {
|
|
386
|
+
const user = userEvent.setup();
|
|
387
|
+
const targetRef = createRef();
|
|
388
|
+
render(createElement("div", null, createElement("span", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
|
|
389
|
+
targetRef,
|
|
390
|
+
content: "Tooltip content",
|
|
391
|
+
})));
|
|
392
|
+
const span = screen.getByText("Hover me");
|
|
393
|
+
await user.hover(span);
|
|
394
|
+
await waitFor(() => {
|
|
395
|
+
expect(screen.getByTestId("tooltip-content")).toBeTruthy();
|
|
396
|
+
});
|
|
397
|
+
});
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
//# sourceMappingURL=Tooltip.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.test.js","sourceRoot":"","sources":["../../../src/tests/common/Tooltip.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-text-game/ui",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Themeable React UI component library for text-based games with Tailwind CSS v4, featuring story passages, interactive maps, and customizable game interfaces",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"tsc-alias": "^1.8.16",
|
|
49
49
|
"@tailwindcss/postcss": "^4.0.0",
|
|
50
50
|
"postcss": "^8.4.49",
|
|
51
|
-
"@react-text-game/core": "0.
|
|
51
|
+
"@react-text-game/core": "0.5.2"
|
|
52
52
|
},
|
|
53
53
|
"imports": {
|
|
54
54
|
"#*": "./dist/*"
|