solid-recharts 0.1.0 → 0.2.1

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 (279) hide show
  1. package/LICENSE +24 -0
  2. package/package.json +10 -7
  3. package/src/cartesian/Area.tsx +40 -55
  4. package/src/cartesian/Bar.tsx +66 -58
  5. package/src/cartesian/BarStack.tsx +5 -2
  6. package/src/cartesian/Brush.tsx +1 -1
  7. package/src/cartesian/Funnel.tsx +15 -19
  8. package/src/cartesian/Line.tsx +34 -51
  9. package/src/cartesian/LineDrawShape.tsx +8 -6
  10. package/src/cartesian/ReferenceArea.tsx +25 -35
  11. package/src/cartesian/ReferenceDot.tsx +24 -34
  12. package/src/cartesian/ReferenceLine.tsx +25 -34
  13. package/src/cartesian/Scatter.tsx +25 -37
  14. package/src/cartesian/XAxis.tsx +54 -67
  15. package/src/cartesian/YAxis.tsx +53 -66
  16. package/src/cartesian/ZAxis.tsx +27 -40
  17. package/src/chart/SunburstChart.tsx +1 -1
  18. package/src/component/ActivePoints.tsx +0 -9
  19. package/src/component/Customized.tsx +1 -1
  20. package/src/component/Dots.tsx +7 -3
  21. package/src/context/ErrorBarContext.tsx +15 -24
  22. package/src/polar/Pie.tsx +36 -48
  23. package/src/polar/PolarAngleAxis.tsx +41 -50
  24. package/src/polar/PolarRadiusAxis.tsx +40 -48
  25. package/src/polar/Radar.tsx +22 -34
  26. package/src/polar/RadialBar.tsx +21 -39
  27. package/src/shape/Curve.tsx +1 -1
  28. package/src/shape/Symbols.tsx +1 -1
  29. package/src/state/RechartsReduxContext.tsx +1 -1
  30. package/src/state/SetLegendPayload.ts +19 -27
  31. package/src/state/SetTooltipEntrySettings.tsx +9 -26
  32. package/src/state/cartesianAxisSlice.ts +40 -60
  33. package/src/state/createCollectionActions.ts +51 -0
  34. package/src/state/createSelector.ts +97 -0
  35. package/src/state/externalEventsMiddleware.ts +2 -11
  36. package/src/state/graphicalItemsSlice.ts +27 -40
  37. package/src/state/isEventThrottled.ts +12 -0
  38. package/src/state/keyboardEventsMiddleware.ts +2 -8
  39. package/src/state/layoutSlice.ts +8 -4
  40. package/src/state/legendSlice.ts +24 -26
  41. package/src/state/mouseEventsMiddleware.ts +2 -13
  42. package/src/state/patched.ts +19 -0
  43. package/src/state/referenceElementsSlice.ts +40 -31
  44. package/src/state/registerInStore.ts +68 -0
  45. package/src/state/selectors/areaSelectors.ts +13 -36
  46. package/src/state/selectors/arrayEqualityCheck.ts +32 -7
  47. package/src/state/selectors/axisSelectors.ts +215 -169
  48. package/src/state/selectors/barSelectors.ts +8 -36
  49. package/src/state/selectors/combiners/combineConfiguredScale.ts +1 -1
  50. package/src/state/selectors/combiners/combineRealScaleType.ts +1 -1
  51. package/src/state/selectors/dataSelectors.ts +35 -16
  52. package/src/state/selectors/numberDomainEqualityCheck.ts +16 -8
  53. package/src/state/selectors/selectAxisForGraphicalItem.ts +52 -0
  54. package/src/state/store.ts +0 -1
  55. package/src/state/tooltipSlice.ts +93 -64
  56. package/src/util/ActiveShapeUtils.tsx +0 -7
  57. package/src/util/BarUtils.tsx +27 -22
  58. package/src/util/ChartUtils.ts +69 -25
  59. package/src/util/propsAreEqual.ts +3 -33
  60. package/src/util/stacks/stackTypes.ts +1 -1
  61. package/src/util/types.ts +2 -2
  62. package/test/animation/CSSTransitionAnimate.timing.spec.tsx +1 -1
  63. package/test/animation/JavascriptAnimate.spec.tsx +1 -1
  64. package/test/animation/legacyAnimationLengthChange.spec.tsx +1 -1
  65. package/test/cartesian/Area.animation.spec.tsx +1 -1
  66. package/test/cartesian/Area.range.spec.tsx +1 -1
  67. package/test/cartesian/Area.spec.tsx +1 -1
  68. package/test/cartesian/Area.stacked.render.spec.tsx +1 -1
  69. package/test/cartesian/Area.typed.spec.tsx +1 -1
  70. package/test/cartesian/Axis.integration.spec.tsx +1 -1
  71. package/test/cartesian/Bar/Bar.csstransition.spec.tsx +1 -1
  72. package/test/cartesian/Bar/Bar.spec.tsx +1 -1
  73. package/test/cartesian/Bar/Bar.typed.spec.tsx +1 -1
  74. package/test/cartesian/Bar.animation.spec.tsx +1 -1
  75. package/test/cartesian/Bar.stackDomain.spec.tsx +1 -1
  76. package/test/cartesian/Bar.stacked.render.spec.tsx +1 -1
  77. package/test/cartesian/Bar.zeroDimensionFiltering.spec.tsx +1 -1
  78. package/test/cartesian/Brush.keyboard.spec.tsx +1 -1
  79. package/test/cartesian/Brush.panorama.spec.tsx +1 -1
  80. package/test/cartesian/Brush.props.spec.tsx +1 -1
  81. package/test/cartesian/Brush.render.spec.tsx +1 -1
  82. package/test/cartesian/Brush.spec.tsx +1 -1
  83. package/test/cartesian/Brush.stacked.spec.tsx +1 -1
  84. package/test/cartesian/CartesianAxis.render.spec.tsx +1 -1
  85. package/test/cartesian/CartesianAxis.spec.tsx +2 -2
  86. package/test/cartesian/CartesianGrid.render.spec.tsx +1 -1
  87. package/test/cartesian/CartesianGrid.spec.tsx +1 -1
  88. package/test/cartesian/ErrorBar.render.spec.tsx +1 -1
  89. package/test/cartesian/ErrorBar.spec.tsx +1 -1
  90. package/test/cartesian/Funnel.animation.spec.tsx +1 -1
  91. package/test/cartesian/Funnel.spec.tsx +1 -1
  92. package/test/cartesian/Funnel.typed.spec.tsx +1 -1
  93. package/test/cartesian/GraphicalItemClipPath.scale-behavior.spec.tsx +2 -2
  94. package/test/cartesian/Line.animation.spec.tsx +1 -1
  95. package/test/cartesian/Line.sparseAnimationPath.spec.tsx +1 -1
  96. package/test/cartesian/Line.spec.tsx +1 -1
  97. package/test/cartesian/Line.typed.spec.tsx +1 -1
  98. package/test/cartesian/ReferenceArea.render.spec.tsx +1 -1
  99. package/test/cartesian/ReferenceArea.spec.tsx +1 -1
  100. package/test/cartesian/ReferenceArea.typed.spec.tsx +1 -1
  101. package/test/cartesian/ReferenceDot.render.spec.tsx +1 -1
  102. package/test/cartesian/ReferenceDot.spec.tsx +1 -1
  103. package/test/cartesian/ReferenceDot.typed.spec.tsx +1 -1
  104. package/test/cartesian/ReferenceLine/ReferenceLine.panorama.spec.tsx +1 -1
  105. package/test/cartesian/ReferenceLine/ReferenceLine.spec.tsx +1 -1
  106. package/test/cartesian/ReferenceLine/ReferenceLine.typed.spec.tsx +1 -1
  107. package/test/cartesian/ReferenceLine/getEndPoints.spec.ts +1 -1
  108. package/test/cartesian/ReferenceLine.render.spec.tsx +1 -1
  109. package/test/cartesian/Scatter.animation.spec.tsx +1 -1
  110. package/test/cartesian/Scatter.render.spec.tsx +1 -1
  111. package/test/cartesian/Scatter.spec.tsx +1 -1
  112. package/test/cartesian/Scatter.typed.spec.tsx +1 -1
  113. package/test/cartesian/XAxis/XAxis.barSize.spec.tsx +1 -1
  114. package/test/cartesian/XAxis/XAxis.brush.spec.tsx +1 -1
  115. package/test/cartesian/XAxis/XAxis.categorydomain.spec.tsx +1 -1
  116. package/test/cartesian/XAxis/XAxis.datatypes.spec.tsx +1 -1
  117. package/test/cartesian/XAxis/XAxis.hide.spec.tsx +1 -1
  118. package/test/cartesian/XAxis/XAxis.multiaxis.spec.tsx +1 -1
  119. package/test/cartesian/XAxis/XAxis.numberdomain.spec.tsx +1 -1
  120. package/test/cartesian/XAxis/XAxis.padding.spec.tsx +1 -1
  121. package/test/cartesian/XAxis/XAxis.padding_clip.spec.tsx +1 -1
  122. package/test/cartesian/XAxis/XAxis.state.spec.tsx +1 -1
  123. package/test/cartesian/XAxis/XAxis.tick.spec.tsx +1 -1
  124. package/test/cartesian/XAxis/XAxis.timescale.spec.tsx +2 -2
  125. package/test/cartesian/XAxis/XAxis.typed.spec.tsx +1 -1
  126. package/test/cartesian/XAxis/XAxis.vertical.spec.tsx +1 -1
  127. package/test/cartesian/XAxis.tickFormatter.spec.tsx +1 -1
  128. package/test/cartesian/YAxis/YAxis.7362.derivedDomain.spec.tsx +1 -1
  129. package/test/cartesian/YAxis/YAxis.interval-zero.spec.tsx +1 -1
  130. package/test/cartesian/YAxis/YAxis.label.spec.tsx +1 -1
  131. package/test/cartesian/YAxis/YAxis.spec.tsx +1 -1
  132. package/test/cartesian/YAxis/YAxis.tick.spec.tsx +1 -1
  133. package/test/cartesian/YAxis/YAxis.tickFormatter.spec.tsx +1 -1
  134. package/test/cartesian/YAxis/YAxis.typed.spec.tsx +1 -1
  135. package/test/cartesian/ZAxis.spec.tsx +1 -1
  136. package/test/cartesian/ZAxis.typed.spec.tsx +1 -1
  137. package/test/cartesian/axisLineAndStroke.spec.tsx +1 -1
  138. package/test/cartesian/miscFeatureGaps.spec.tsx +1 -1
  139. package/test/chart/AccessibilityLayer.spec.tsx +1 -1
  140. package/test/chart/AccessibilityScans.spec.tsx +2 -2
  141. package/test/chart/AreaChart.spec.tsx +1 -1
  142. package/test/chart/AreaChart.typed.spec.tsx +1 -1
  143. package/test/chart/BarChart.spec.tsx +1 -1
  144. package/test/chart/BarChart.typed.spec.tsx +1 -1
  145. package/test/chart/CategoricalChart.spec.tsx +1 -1
  146. package/test/chart/ComposedChart.spec.tsx +1 -1
  147. package/test/chart/ComposedChart.typed.spec.tsx +1 -1
  148. package/test/chart/FunnelChart.spec.tsx +1 -1
  149. package/test/chart/FunnelChart.typed.spec.tsx +1 -1
  150. package/test/chart/LineChart.smoke.spec.tsx +1 -1
  151. package/test/chart/LineChart.spec.tsx +1 -1
  152. package/test/chart/LineChart.typed.spec.tsx +1 -1
  153. package/test/chart/NicheChartTooltip.spec.tsx +1 -1
  154. package/test/chart/PieChart.spec.tsx +1 -1
  155. package/test/chart/PieChart.typed.spec.tsx +1 -1
  156. package/test/chart/RadarChart.spec.tsx +1 -1
  157. package/test/chart/RadarChart.typed.spec.tsx +1 -1
  158. package/test/chart/RadialBarChart.spec.tsx +1 -1
  159. package/test/chart/RadialBarChart.typed.spec.tsx +1 -1
  160. package/test/chart/RechartsWrapper.spec.tsx +1 -1
  161. package/test/chart/Sankey.content.spec.tsx +1 -1
  162. package/test/chart/Sankey.spec.tsx +1 -1
  163. package/test/chart/ScatterChart.spec.tsx +1 -1
  164. package/test/chart/ScatterChart.typed.spec.tsx +1 -1
  165. package/test/chart/SunburstChart.spec.tsx +1 -1
  166. package/test/chart/Treemap.animation.spec.tsx +1 -1
  167. package/test/chart/Treemap.spec.tsx +1 -1
  168. package/test/chart/chartEvents.spec.tsx +1 -1
  169. package/test/chart/responsive.spec.tsx +1 -1
  170. package/test/component/Cell.render.spec.tsx +1 -1
  171. package/test/component/Cell.spec.tsx +1 -1
  172. package/test/component/Cursor.spec.tsx +1 -1
  173. package/test/component/DefaultTooltipContent.spec.tsx +1 -1
  174. package/test/component/Label.render.spec.tsx +1 -1
  175. package/test/component/Label.spec.tsx +1 -1
  176. package/test/component/LabelList.spec.tsx +1 -1
  177. package/test/component/Legend.itemSorter.spec.tsx +1 -1
  178. package/test/component/Legend.render.spec.tsx +1 -1
  179. package/test/component/Legend.spec.tsx +1 -1
  180. package/test/component/ResponsiveContainer.spec.tsx +1 -1
  181. package/test/component/ResponsiveContainerDataTest.spec.tsx +1 -1
  182. package/test/component/Text.spec.tsx +1 -1
  183. package/test/component/Tooltip/ActiveDot.spec.tsx +1 -1
  184. package/test/component/Tooltip/tooltipEventType.spec.tsx +1 -1
  185. package/test/component/Tooltip/tooltipTestHelpers.tsx +1 -1
  186. package/test/component/Tooltip.defaultIndex.spec.tsx +1 -1
  187. package/test/component/Tooltip.hover.spec.tsx +1 -1
  188. package/test/component/Tooltip.item.spec.tsx +1 -1
  189. package/test/component/Tooltip.keyboard.spec.tsx +1 -1
  190. package/test/component/Tooltip.payload.spec.tsx +1 -1
  191. package/test/component/Tooltip.touch.spec.tsx +1 -1
  192. package/test/component/Tooltip.visibility.spec.tsx +1 -1
  193. package/test/component/TooltipBoundingBox.spec.tsx +2 -2
  194. package/test/container/ClipPath.spec.tsx +1 -1
  195. package/test/context/chartLayoutContext.spec.tsx +1 -1
  196. package/test/helper/createSelectorTestCase.tsx +1 -1
  197. package/test/helper/mockAxes.ts +1 -1
  198. package/test/helper/selectorTestHelpers.tsx +1 -1
  199. package/test/hooks/useActiveTooltipDataPoints.spec.tsx +1 -1
  200. package/test/hooks/useOffset.spec.tsx +1 -1
  201. package/test/hooks/useTooltipStateHooks.spec.tsx +1 -1
  202. package/test/polar/Pie/Pie-TwoLevelPieChart.spec.tsx +1 -1
  203. package/test/polar/Pie/Pie.spec.tsx +1 -1
  204. package/test/polar/Pie/Pie.typed.spec.tsx +1 -1
  205. package/test/polar/Pie.animation.spec.tsx +1 -1
  206. package/test/polar/PieWithLegend.animation.spec.tsx +1 -1
  207. package/test/polar/PolarAngleAxis/PolarAngleAxis.events.spec.tsx +1 -1
  208. package/test/polar/PolarAngleAxis/PolarAngleAxis.spec.tsx +1 -1
  209. package/test/polar/PolarAngleAxis/PolarAngleAxis.typed.spec.tsx +1 -1
  210. package/test/polar/PolarAngleAxis.render.spec.tsx +1 -1
  211. package/test/polar/PolarGrid.render.spec.tsx +1 -1
  212. package/test/polar/PolarGrid.spec.tsx +1 -1
  213. package/test/polar/PolarLegendPerRow.render.spec.tsx +1 -1
  214. package/test/polar/PolarRadiusAxis.events.spec.tsx +1 -1
  215. package/test/polar/PolarRadiusAxis.render.spec.tsx +1 -1
  216. package/test/polar/PolarRadiusAxis.spec.tsx +1 -1
  217. package/test/polar/PolarRadiusAxis.typed.spec.tsx +1 -1
  218. package/test/polar/PolarTooltipLegend.render.spec.tsx +1 -1
  219. package/test/polar/Radar.animation.spec.tsx +1 -1
  220. package/test/polar/Radar.render.spec.tsx +1 -1
  221. package/test/polar/Radar.spec.tsx +1 -1
  222. package/test/polar/Radar.typed.spec.tsx +1 -1
  223. package/test/polar/RadialBar/RadialBar.spec.tsx +1 -1
  224. package/test/polar/RadialBar/RadialBar.typed.spec.tsx +1 -1
  225. package/test/polar/RadialBar.animation.spec.tsx +1 -1
  226. package/test/polar/RadialBar.render.spec.tsx +1 -1
  227. package/test/polar/RadialBar.stacked.spec.tsx +1 -1
  228. package/test/setup.ts +1 -1
  229. package/test/shape/ActiveShape.spec.tsx +1 -1
  230. package/test/shape/Cross.spec.tsx +1 -1
  231. package/test/shape/Curve.spec.tsx +2 -2
  232. package/test/shape/Curve.typed.spec.tsx +1 -1
  233. package/test/shape/Dot.spec.tsx +1 -1
  234. package/test/shape/Polygon.spec.tsx +1 -1
  235. package/test/shape/Rectangle.animation.spec.tsx +1 -1
  236. package/test/shape/Rectangle.spec.tsx +1 -1
  237. package/test/shape/Sector.spec.tsx +1 -1
  238. package/test/shape/Symbols.spec.tsx +1 -1
  239. package/test/shape/Trapezoid.spec.tsx +1 -1
  240. package/test/state/createCollectionActions.spec.ts +87 -0
  241. package/test/state/createSelector.spec.ts +158 -0
  242. package/test/state/hooks.spec.tsx +1 -1
  243. package/test/state/registerInStore.spec.tsx +101 -0
  244. package/test/state/selectors/axisSelectors.spec.tsx +1 -1
  245. package/test/state/selectors/combiners/combineConfiguredScale.spec.ts +1 -1
  246. package/test/state/selectors/combiners/combineRealScaleType.spec.ts +1 -1
  247. package/test/state/selectors/dataSelectors.spec.tsx +1 -1
  248. package/test/state/selectors/legendSelectors.spec.tsx +1 -1
  249. package/test/state/selectors/radarSelectors.spec.tsx +1 -1
  250. package/test/state/selectors/selectActiveTooltipIndex.spec.tsx +1 -1
  251. package/test/state/selectors/selectDisplayedData.spec.tsx +1 -1
  252. package/test/state/selectors/selectStackGroups.spec.tsx +1 -1
  253. package/test/state/selectors/selectorMemoization.spec.tsx +136 -0
  254. package/test/state/selectors/selectors.spec.tsx +1 -1
  255. package/test/util/CartesianUtils/CartesianUtils.spec.ts +1 -1
  256. package/test/util/ChartUtils/ChartUtils.spec.ts +1 -1
  257. package/test/util/ChartUtils/getCateCoordinateOfLine.spec.ts +14 -0
  258. package/test/util/ChartUtils/getStackedData.spec.ts +1 -1
  259. package/test/util/ChartUtils/truncateByDomain.spec.ts +1 -1
  260. package/test/util/DomUtils.spec.tsx +1 -1
  261. package/test/util/FunnelUtils.spec.tsx +1 -1
  262. package/test/util/scale/createCategoricalInverse.spec.ts +1 -1
  263. package/test/util/useElementOffset.spec.tsx +1 -1
  264. package/test/util/usePrefersReducedMotion.spec.ts +1 -1
  265. package/test/util/useUniqueId.spec.ts +1 -1
  266. package/test/zIndex/AllZIndexPortals.spec.tsx +1 -1
  267. package/test/zIndex/DynamicZIndex.spec.tsx +1 -1
  268. package/test/zIndex/ZIndexLayer.portalOwner.spec.tsx +1 -1
  269. package/test/zIndex/componentZIndex.spec.tsx +1 -1
  270. package/test/zIndex/multiChartZIndexIsolation.spec.tsx +1 -1
  271. package/test-results/.last-run.json +4 -0
  272. package/NEXT_SESSION_PROMPT.md +0 -114
  273. package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +0 -15
  274. package/src/util/axisPropsAreEqual.ts +0 -42
  275. package/src/util/resolveDefaultProps.tsx +0 -8
  276. package/src/util/typedDataKey.ts +0 -8
  277. package/test/helper/render.ts +0 -7
  278. package/test/state/reduxDevtoolsJsonStringifyReplacer.spec.ts +0 -25
  279. package/test/util/axisPropsAreEqual.spec.ts +0 -93
@@ -9,7 +9,7 @@
9
9
  // tooltip/legend deferred.
10
10
  import { describe, expect, it } from "vitest";
11
11
  import { flush } from "solid-js";
12
- import { render } from "../helper/render";
12
+ import { render } from "@solidjs/testing-library";
13
13
  import { RadarChart, Radar, PolarAngleAxis } from "../../src";
14
14
 
15
15
  const exampleRadarData = [
@@ -11,7 +11,7 @@ import { describe, expect, it, vi } from "vitest";
11
11
  import { Radar, RadarChart } from "../../src";
12
12
  import type { RadarProps } from "../../src";
13
13
  import type { RadarShapeProps } from "../../src/polar/Radar";
14
- import { fireEvent, render, screen } from "../helper/render";
14
+ import { fireEvent, render, screen } from "@solidjs/testing-library";
15
15
  import { useAppSelector } from "../../src/state/hooks";
16
16
  import { selectPolarItemsSettings } from "../../src/state/selectors/polarSelectors";
17
17
  import { exampleRadarData } from "../_data";
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { Radar, RadarChart, getRelativeCoordinate } from "../../src";
3
- import { render } from "../helper/render";
3
+ import { render } from "@solidjs/testing-library";
4
4
 
5
5
  type ExampleDataPoint = {
6
6
  value: number;
@@ -28,7 +28,7 @@ import {
28
28
  Tooltip,
29
29
  } from "../../../src";
30
30
  import { assertZIndexLayerOrder } from "../../helper/assertZIndexLayerOrder";
31
- import { fireEvent, render } from "../../helper/render";
31
+ import { fireEvent, render } from "@solidjs/testing-library";
32
32
  import { useAppSelector } from "../../../src/state/hooks";
33
33
  import { selectPolarItemsSettings } from "../../../src/state/selectors/polarSelectors";
34
34
  import { PageData } from "../../_data";
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import type { RadialBarDataItem } from "../../../src";
3
3
  import { getRelativeCoordinate, RadialBar, RadialBarChart } from "../../../src";
4
- import { render } from "../../helper/render";
4
+ import { render } from "@solidjs/testing-library";
5
5
 
6
6
  type ExampleDataPoint = {
7
7
  value: number;
@@ -23,7 +23,7 @@
23
23
  import { describe, expect, it, vi } from "vitest";
24
24
  import type { JSX } from "@solidjs/web";
25
25
  import { createSignal, flush } from "solid-js";
26
- import { render, fireEvent } from "../helper/render";
26
+ import { render, fireEvent } from "@solidjs/testing-library";
27
27
  import { assertNotNull } from "../helper/assertNotNull";
28
28
  import { trim } from "../helper/trim";
29
29
  import { RadialBarChart, RadialBar } from "../../src";
@@ -8,7 +8,7 @@
8
8
  // animation/label/exact geometry deferred.
9
9
  import { describe, expect, it } from "vitest";
10
10
  import { flush } from "solid-js";
11
- import { render } from "../helper/render";
11
+ import { render } from "@solidjs/testing-library";
12
12
  import { RadialBarChart, RadialBar } from "../../src";
13
13
  import { PageData } from "../_data";
14
14
 
@@ -4,7 +4,7 @@
4
4
  // [570,1830]→[56°,180°] with endAngle=180 and total=1830).
5
5
  import { describe, expect, it } from "vitest";
6
6
  import { flush } from "solid-js";
7
- import { render } from "../helper/render";
7
+ import { render } from "@solidjs/testing-library";
8
8
  import { RadialBarChart, RadialBar } from "../../src";
9
9
 
10
10
  const data = [{ month: "january", desktop: 1260, mobile: 570 }];
package/test/setup.ts CHANGED
@@ -30,7 +30,7 @@ import "@testing-library/jest-dom/vitest";
30
30
  import "./helper/expectFunctionReturning";
31
31
  import { afterEach, beforeEach, vi } from "vitest";
32
32
  import { DEV } from "solid-js";
33
- import { cleanup } from "./helper/render";
33
+ import { cleanup } from "@solidjs/testing-library";
34
34
  import {
35
35
  type DiagnosticEvent,
36
36
  describeDiagnosticEvents,
@@ -18,7 +18,7 @@
18
18
  // upstream cases are omitted. The function, object, and boolean forms are ported
19
19
  // verbatim (modulo className->class).
20
20
  import { describe, expect, test } from "vitest";
21
- import { render } from "../helper/render";
21
+ import { render } from "@solidjs/testing-library";
22
22
  import { Funnel, FunnelChart, Trapezoid, Tooltip } from "../../src";
23
23
  import { showTooltip } from "../component/Tooltip/tooltipTestHelpers";
24
24
  import { funnelChartMouseHoverTooltipSelector } from "../component/Tooltip/tooltipMouseHoverSelectors";
@@ -3,7 +3,7 @@
3
3
  // import; the invalid-input cast uses `unknown` instead of `any`. Assertions
4
4
  // are byte-identical (snapshots self-record our output; the `.recharts-cross`
5
5
  // counts are the parity signal).
6
- import { render } from "../helper/render";
6
+ import { render } from "@solidjs/testing-library";
7
7
 
8
8
  import { Surface, Cross } from "../../src";
9
9
 
@@ -4,8 +4,8 @@
4
4
  // render takes a thunk. All assertions are byte-identical.
5
5
  import { describe, expect, it, test } from "vitest";
6
6
  import { createSignal } from "solid-js";
7
- import { render, fireEvent } from "../helper/render";
8
- import { curveLinear } from "victory-vendor/d3-shape";
7
+ import { render, fireEvent } from "@solidjs/testing-library";
8
+ import { curveLinear } from "d3-shape";
9
9
  import { Surface, Curve } from "../../src";
10
10
  import { getPath, type CurveType } from "../../src/shape/Curve";
11
11
  import { assertNotNull } from "../helper/assertNotNull";
@@ -19,7 +19,7 @@
19
19
  * `(_curveProps, e)` React signature is reported in blocked.)
20
20
  */
21
21
  import { describe, it } from "vitest";
22
- import { render } from "@solid-recharts/testing-library";
22
+ import { render } from "@solidjs/testing-library";
23
23
  import { Curve, getRelativeCoordinate } from "../../src";
24
24
 
25
25
  describe("Curve types", () => {
@@ -2,7 +2,7 @@
2
2
  // Harness changes only: render from local Solid shim, no React import, render takes a thunk.
3
3
  // All assertions are byte-identical to recharts.
4
4
  import { describe, test, expect } from "vitest";
5
- import { render } from "../helper/render";
5
+ import { render } from "@solidjs/testing-library";
6
6
 
7
7
  import { Surface, Dot } from "../../src";
8
8
  import { assertNotNull } from "../helper/assertNotNull";
@@ -2,7 +2,7 @@
2
2
  // Harness changes only: render/fireEvent from the local Solid shim (thunk), no
3
3
  // React import; `className` → `class` (the sanctioned prop rename). Path `d`
4
4
  // assertions are byte-identical (the parity signal); snapshots self-record.
5
- import { render, fireEvent } from "../helper/render";
5
+ import { render, fireEvent } from "@solidjs/testing-library";
6
6
  import { Surface, Polygon } from "../../src";
7
7
  import { Coordinate } from "../../src/util/types";
8
8
  import { assertNotNull } from "../helper/assertNotNull";
@@ -37,7 +37,7 @@
37
37
  // is preserved.
38
38
  import { beforeAll, afterAll, describe, expect, it } from "vitest";
39
39
  import { createSignal, flush } from "solid-js";
40
- import { render } from "../helper/render";
40
+ import { render } from "@solidjs/testing-library";
41
41
  import { trim } from "../helper/trim";
42
42
  import { assertNotNull } from "../helper/assertNotNull";
43
43
  import { Rectangle, Surface } from "../../src";
@@ -2,7 +2,7 @@
2
2
  // Harness changes only: render from the local Solid shim (thunk), no React
3
3
  // import; invalid-input casts use `unknown`. These all exercise the static
4
4
  // (non-update-animation) path. Path `d`/arc assertions are byte-identical.
5
- import { render } from "../helper/render";
5
+ import { render } from "@solidjs/testing-library";
6
6
  import { Surface, Rectangle } from "../../src";
7
7
  import { RectRadius } from "../../src/shape/Rectangle";
8
8
 
@@ -2,7 +2,7 @@
2
2
  // Harness changes only: render from the local Solid shim (thunk), no React
3
3
  // import. Assertions are byte-identical (snapshots self-record; the
4
4
  // `.recharts-sector` presence/count + arc-count are the parity signal).
5
- import { render } from "../helper/render";
5
+ import { render } from "@solidjs/testing-library";
6
6
 
7
7
  import { Surface, Sector } from "../../src";
8
8
 
@@ -4,7 +4,7 @@
4
4
  // tests are ported; the 4th ('Expect no points attribute on path') renders a
5
5
  // full LineChart with XAxis/YAxis/Line and is DEFERRED until the chart vertical
6
6
  // is ported.
7
- import { render } from "../helper/render";
7
+ import { render } from "@solidjs/testing-library";
8
8
  import { Surface, Symbols } from "../../src";
9
9
 
10
10
  describe("<Symbols />", () => {
@@ -2,7 +2,7 @@
2
2
  // Harness changes only: render from the local Solid shim (thunk), no React
3
3
  // import. The 'with animation' case snapshot matches the reference byte-for-byte
4
4
  // (the update-animation path renders the t=0 frame with the "0px 1px" dash).
5
- import { render } from "../helper/render";
5
+ import { render } from "@solidjs/testing-library";
6
6
  import { Surface, Trapezoid } from "../../src";
7
7
 
8
8
  describe("<Trapezoid />", () => {
@@ -0,0 +1,87 @@
1
+ // Unit spec for the keyed-collection array algebra (src/state/createCollectionActions.ts).
2
+ // No upstream counterpart — upstream inlines this per slice via immer; this pins
3
+ // the shared contract the array slices (graphicalItems, referenceElements, legend,
4
+ // tooltip) delegate to. The helper is pure over its read/write closures, so this
5
+ // exercises it against a plain array cell — the interface is the test surface, and
6
+ // the "new reference on every write" assertions are the ADR-0002 immutability
7
+ // contract the reference-equality selector caches depend on.
8
+ import { describe, expect, it } from "vitest";
9
+ import { createCollectionActions } from "../../src/state/createCollectionActions";
10
+
11
+ type Item = { id: string; v: number };
12
+
13
+ function harness(initial: ReadonlyArray<Item> = []) {
14
+ let arr: ReadonlyArray<Item> = initial;
15
+ const actions = createCollectionActions<Item>(
16
+ (updater) => {
17
+ const next = updater(arr);
18
+ if (next !== arr) {
19
+ arr = next;
20
+ }
21
+ },
22
+ (it) => it.id,
23
+ );
24
+ return { actions, get: () => arr };
25
+ }
26
+
27
+ describe("createCollectionActions", () => {
28
+ it("add appends and produces a new array reference", () => {
29
+ const { actions, get } = harness();
30
+ const before = get();
31
+ actions.add({ id: "a", v: 1 });
32
+ expect(get()).toEqual([{ id: "a", v: 1 }]);
33
+ expect(get()).not.toBe(before);
34
+ });
35
+
36
+ it("replace swaps the matching element by key (new reference), keeping others and order", () => {
37
+ const { actions, get } = harness([
38
+ { id: "a", v: 1 },
39
+ { id: "b", v: 2 },
40
+ ]);
41
+ const before = get();
42
+ actions.replace({ prev: { id: "a", v: 1 }, next: { id: "a", v: 99 } });
43
+ expect(get()).toEqual([
44
+ { id: "a", v: 99 },
45
+ { id: "b", v: 2 },
46
+ ]);
47
+ expect(get()).not.toBe(before);
48
+ });
49
+
50
+ it("replace is a no-op (same reference) when the key is absent", () => {
51
+ const { actions, get } = harness([{ id: "a", v: 1 }]);
52
+ const before = get();
53
+ actions.replace({ prev: { id: "zzz", v: 0 }, next: { id: "zzz", v: 1 } });
54
+ expect(get()).toBe(before);
55
+ });
56
+
57
+ it("remove filters by key, new reference", () => {
58
+ const { actions, get } = harness([
59
+ { id: "a", v: 1 },
60
+ { id: "b", v: 2 },
61
+ ]);
62
+ const before = get();
63
+ actions.remove({ id: "a", v: 1 });
64
+ expect(get()).toEqual([{ id: "b", v: 2 }]);
65
+ expect(get()).not.toBe(before);
66
+ });
67
+
68
+ it("matches by keyOf, not object identity (nested key supported)", () => {
69
+ type Nested = { settings: { gid: string }; label: string };
70
+ let arr: ReadonlyArray<Nested> = [{ settings: { gid: "g1" }, label: "old" }];
71
+ const actions = createCollectionActions<Nested>(
72
+ (updater) => {
73
+ const next = updater(arr);
74
+ if (next !== arr) {
75
+ arr = next;
76
+ }
77
+ },
78
+ (n) => n.settings.gid,
79
+ );
80
+ // A different object carrying the SAME nested key still matches.
81
+ actions.replace({
82
+ prev: { settings: { gid: "g1" }, label: "whatever" },
83
+ next: { settings: { gid: "g1" }, label: "new" },
84
+ });
85
+ expect(arr).toEqual([{ settings: { gid: "g1" }, label: "new" }]);
86
+ });
87
+ });
@@ -0,0 +1,158 @@
1
+ // Unit spec for the hand-rolled reselect-lite (ADR-0002). No upstream
2
+ // counterpart to port — upstream gets this contract from reselect itself; this
3
+ // spec pins the same contract for our implementation.
4
+ import { describe, expect, it, vi } from "vitest";
5
+ import { createMemo, createStore, flush } from "solid-js";
6
+ import { renderHook } from "@solidjs/testing-library";
7
+ import { createSelector } from "../../src/state/createSelector";
8
+
9
+ type TestState = {
10
+ axis: { domain: readonly number[] };
11
+ data: { points: readonly number[] };
12
+ unrelated: { counter: number };
13
+ };
14
+
15
+ const makeState = (): TestState => ({
16
+ axis: { domain: [0, 1] },
17
+ data: { points: [1, 2, 3] },
18
+ unrelated: { counter: 0 },
19
+ });
20
+
21
+ describe("createSelector", () => {
22
+ it("shares one combiner run across repeated calls with the same state and args", () => {
23
+ const combiner = vi.fn((points: readonly number[], axisId: string) => ({
24
+ axisId,
25
+ total: points.reduce((a, b) => a + b, 0),
26
+ }));
27
+ const selector = createSelector(
28
+ [(s: TestState) => s.data.points, (_s: TestState, axisId: string) => axisId],
29
+ combiner,
30
+ );
31
+
32
+ const state = makeState();
33
+ const first = selector(state, "x");
34
+ const second = selector(state, "x");
35
+
36
+ expect(combiner).toHaveBeenCalledTimes(1);
37
+ expect(second).toBe(first);
38
+ });
39
+
40
+ it("keeps separate cache nodes per argument combination (SameValueZero keys)", () => {
41
+ const combiner = vi.fn((points: readonly number[], axisId: string | number) => ({
42
+ axisId,
43
+ count: points.length,
44
+ }));
45
+ const selector = createSelector(
46
+ [(s: TestState) => s.data.points, (_s: TestState, axisId: string | number) => axisId],
47
+ combiner,
48
+ );
49
+
50
+ const state = makeState();
51
+ const zeroNumber = selector(state, 0);
52
+ const zeroString = selector(state, "0");
53
+
54
+ // `0` and `"0"` are distinct axis ids — distinct nodes.
55
+ expect(combiner).toHaveBeenCalledTimes(2);
56
+ expect(selector(state, 0)).toBe(zeroNumber);
57
+ expect(selector(state, "0")).toBe(zeroString);
58
+ expect(combiner).toHaveBeenCalledTimes(2);
59
+ });
60
+
61
+ it("isolates caches per store: alternating stores never thrash each other", () => {
62
+ const combiner = vi.fn((points: readonly number[]) => points.length);
63
+ const selector = createSelector([(s: TestState) => s.data.points], combiner);
64
+
65
+ const a = makeState();
66
+ const b = makeState();
67
+ selector(a);
68
+ selector(b);
69
+ selector(a);
70
+ selector(b);
71
+
72
+ expect(combiner).toHaveBeenCalledTimes(2);
73
+ });
74
+
75
+ it("recomputes when an input reference changes, and only then", () => {
76
+ const combiner = vi.fn((domain: readonly number[]) => [...domain]);
77
+ const selector = createSelector([(s: TestState) => s.axis.domain], combiner);
78
+
79
+ const state = makeState();
80
+ const first = selector(state);
81
+ expect(combiner).toHaveBeenCalledTimes(1);
82
+
83
+ // Unrelated branch replaced: input reference unchanged → cache hit.
84
+ state.unrelated = { counter: 1 };
85
+ expect(selector(state)).toBe(first);
86
+ expect(combiner).toHaveBeenCalledTimes(1);
87
+
88
+ // Input path replaced (slice immutability contract) → recompute.
89
+ state.axis = { domain: [0, 2] };
90
+ const second = selector(state);
91
+ expect(combiner).toHaveBeenCalledTimes(2);
92
+ expect(second).toEqual([0, 2]);
93
+ expect(second).not.toBe(first);
94
+ });
95
+
96
+ it("resultEqualityCheck preserves the previous reference on value-equal recomputes", () => {
97
+ const combiner = vi.fn((points: readonly number[]) => points.map((p) => p * 2));
98
+ const selector = createSelector([(s: TestState) => s.data.points], combiner, {
99
+ resultEqualityCheck: (prev, next) =>
100
+ prev.length === next.length && prev.every((v, i) => v === next[i]),
101
+ });
102
+
103
+ const state = makeState();
104
+ const first = selector(state);
105
+
106
+ // New input reference, same values → combiner runs, previous reference survives.
107
+ state.data = { points: [1, 2, 3] };
108
+ expect(selector(state)).toBe(first);
109
+ expect(combiner).toHaveBeenCalledTimes(2);
110
+
111
+ // And the value-equal result is cached: the next call is a pure cache hit.
112
+ expect(selector(state)).toBe(first);
113
+ expect(combiner).toHaveBeenCalledTimes(2);
114
+
115
+ // Genuinely different values → new reference.
116
+ state.data = { points: [4, 5] };
117
+ expect(selector(state)).toEqual([8, 10]);
118
+ expect(selector(state)).not.toBe(first);
119
+ });
120
+
121
+ it("propagates reactively through input reads, including after cache hits", () => {
122
+ const [state, setState] = createStore<TestState>(makeState());
123
+ const combiner = vi.fn((domain: readonly number[]) => domain[1]);
124
+ const selector = createSelector([(s: TestState) => s.axis.domain], combiner);
125
+
126
+ const { result: upper } = renderHook(() => createMemo(() => selector(state)));
127
+ flush();
128
+ expect(upper()).toBe(1);
129
+
130
+ // A cache-hit evaluation in between must not drop the input subscription.
131
+ expect(selector(state)).toBe(1);
132
+
133
+ setState((s) => {
134
+ s.axis = { domain: [0, 5] };
135
+ });
136
+ flush();
137
+ expect(upper()).toBe(5);
138
+ expect(combiner).toHaveBeenCalledTimes(2);
139
+ });
140
+
141
+ it("runs the combiner untracked: state read only inside a combiner does not subscribe", () => {
142
+ const [state, setState] = createStore<TestState>(makeState());
143
+ // Contract violation on purpose: the combiner reads state directly.
144
+ const impure = createSelector([(s: TestState) => s.axis.domain], () => state.unrelated.counter);
145
+
146
+ const { result } = renderHook(() => createMemo(() => impure(state)));
147
+ flush();
148
+ expect(result()).toBe(0);
149
+
150
+ setState((s) => {
151
+ s.unrelated = { counter: 7 };
152
+ });
153
+ flush();
154
+ // No input reference changed and the combiner's read was untracked:
155
+ // the memo must NOT have re-run. This documents the purity contract.
156
+ expect(result()).toBe(0);
157
+ });
158
+ });
@@ -14,7 +14,7 @@
14
14
  // asserted after `flush()` (Solid batches writes on microtasks).
15
15
  import { describe, expect, it } from "vitest";
16
16
  import { flush } from "solid-js";
17
- import { renderHook } from "../helper/render";
17
+ import { renderHook } from "@solidjs/testing-library";
18
18
  import { useAppSelector, useAppStore } from "../../src/state/hooks";
19
19
  import { RechartsStoreProvider } from "../../src/state/RechartsStoreProvider";
20
20
 
@@ -0,0 +1,101 @@
1
+ // Unit spec for the register-while-mounted idiom (src/state/registerInStore.ts).
2
+ // No upstream counterpart — upstream hand-rolls two useLayoutEffects per site;
3
+ // this module concentrates the Solid-port equivalent, so this spec pins the
4
+ // contract every graphical item / axis / reference / tooltip / legend relies on.
5
+ //
6
+ // The interface is the test surface: (compute, {add, replace, remove}). These
7
+ // exercise it with spy handlers and a signal-driven compute — the same seam the
8
+ // 17 call sites cross. The global diagnostics guard in test/setup.ts additionally
9
+ // fails any of these on an unexpected reactive-graph diagnostic (e.g. a
10
+ // STRICT_READ_UNTRACKED, which would fire if the apply phase read a signal), so
11
+ // the add/replace cases double as a check that the two-arg createEffect shape
12
+ // keeps reactive reads in the compute phase only.
13
+ //
14
+ // Not asserted here: that removal runs owner-free (unregisterOnCleanup's
15
+ // runWithOwner(null), guarding SIGNAL_WRITE_IN_OWNED_SCOPE — a store write while a
16
+ // live parent disposes an owned child). That property IS exercised, just not in
17
+ // isolation: every graphical-item / axis component mount+unmount in the component
18
+ // suite writes to the real store on disposal, and the e2e suite covers real
19
+ // router/subtree teardown. A standalone unit attempt writes to a synthetic store
20
+ // during a disposal flush, which trips an unrelated test-harness scheduler
21
+ // artifact ("fn is not a function") rather than the diagnostic — so it would test
22
+ // the harness, not the contract.
23
+ import { describe, expect, it, vi } from "vitest";
24
+ import { createSignal, flush } from "solid-js";
25
+ import { renderHook } from "@solidjs/testing-library";
26
+ import { registerInStore } from "../../src/state/registerInStore";
27
+
28
+ const makeHandlers = () => ({ add: vi.fn(), replace: vi.fn(), remove: vi.fn() });
29
+
30
+ describe("registerInStore", () => {
31
+ it("calls add once on first registration", () => {
32
+ const handlers = makeHandlers();
33
+ renderHook(() => registerInStore(() => ({ id: "a" }), handlers));
34
+ flush();
35
+
36
+ expect(handlers.add).toHaveBeenCalledTimes(1);
37
+ expect(handlers.add).toHaveBeenCalledWith({ id: "a" });
38
+ expect(handlers.replace).not.toHaveBeenCalled();
39
+ expect(handlers.remove).not.toHaveBeenCalled();
40
+ });
41
+
42
+ it("calls replace(prev, next) when the computed settings change", () => {
43
+ const handlers = makeHandlers();
44
+ const { result: setN } = renderHook(() => {
45
+ const [n, setN] = createSignal(1);
46
+ registerInStore(() => ({ id: "a", n: n() }), handlers);
47
+ return setN;
48
+ });
49
+ flush();
50
+ expect(handlers.add).toHaveBeenCalledWith({ id: "a", n: 1 });
51
+
52
+ setN(2);
53
+ flush();
54
+
55
+ expect(handlers.replace).toHaveBeenCalledTimes(1);
56
+ expect(handlers.replace).toHaveBeenCalledWith({ id: "a", n: 1 }, { id: "a", n: 2 });
57
+ // add fires exactly once, ever.
58
+ expect(handlers.add).toHaveBeenCalledTimes(1);
59
+ });
60
+
61
+ it("skips the tick when compute returns undefined and preserves prev", () => {
62
+ const handlers = makeHandlers();
63
+ const { result: setOn } = renderHook(() => {
64
+ const [on, setOn] = createSignal(true);
65
+ registerInStore(() => (on() ? { id: "a" } : undefined), handlers);
66
+ return setOn;
67
+ });
68
+ flush();
69
+ expect(handlers.add).toHaveBeenCalledTimes(1);
70
+
71
+ setOn(false); // compute → undefined: no write, prev untouched
72
+ flush();
73
+ expect(handlers.replace).not.toHaveBeenCalled();
74
+ expect(handlers.remove).not.toHaveBeenCalled();
75
+
76
+ setOn(true); // valid again: prev survived, so this is a replace — not a second add
77
+ flush();
78
+ expect(handlers.add).toHaveBeenCalledTimes(1);
79
+ expect(handlers.replace).toHaveBeenCalledTimes(1);
80
+ });
81
+
82
+ it("calls remove(prev) on unmount", () => {
83
+ const handlers = makeHandlers();
84
+ const { cleanup } = renderHook(() => registerInStore(() => ({ id: "a" }), handlers));
85
+ flush();
86
+
87
+ cleanup();
88
+ expect(handlers.remove).toHaveBeenCalledTimes(1);
89
+ expect(handlers.remove).toHaveBeenCalledWith({ id: "a" });
90
+ });
91
+
92
+ it("does not call remove on unmount when it never registered", () => {
93
+ const handlers = makeHandlers();
94
+ const { cleanup } = renderHook(() => registerInStore(() => undefined, handlers));
95
+ flush();
96
+
97
+ cleanup();
98
+ expect(handlers.add).not.toHaveBeenCalled();
99
+ expect(handlers.remove).not.toHaveBeenCalled();
100
+ });
101
+ });
@@ -40,7 +40,7 @@ import { PageData, misbehavedData } from "../../_data";
40
40
  import { createSelectorTestCase } from "../../helper/createSelectorTestCase";
41
41
  import { expectXAxisTicks } from "../../helper/expectAxisTicks";
42
42
  import { expectLastCalledWithScale } from "../../helper/expectScale";
43
- import { render } from "../../helper/render";
43
+ import { render } from "@solidjs/testing-library";
44
44
  import { useAppStore } from "../../../src/state/hooks";
45
45
  import {
46
46
  shouldReturnFromInitialState,
@@ -1,4 +1,4 @@
1
- import { scaleLinear } from "victory-vendor/d3-scale";
1
+ import { scaleLinear } from "d3-scale";
2
2
  import { describe, expect, it } from "vitest";
3
3
  import { assertNotNull } from "../../../helper/assertNotNull";
4
4
  import { AxisRange } from "../../../../src/state/selectors/axisSelectors";
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { scaleLog } from "victory-vendor/d3-scale";
2
+ import { scaleLog } from "d3-scale";
3
3
  import { BaseCartesianAxis } from "../../../../src/state/cartesianAxisSlice";
4
4
  import { combineRealScaleType } from "../../../../src/state/selectors/combiners/combineRealScaleType";
5
5
 
@@ -10,7 +10,7 @@ import {
10
10
  useAppSelectorWithStableTest,
11
11
  } from "../../helper/selectorTestHelpers";
12
12
  import { expectLastCalledWith } from "../../helper/expectLastCalledWith";
13
- import { render } from "../../helper/render";
13
+ import { render } from "@solidjs/testing-library";
14
14
 
15
15
  // Ported from recharts 3.8.1 test/state/selectors/dataSelectors.spec.tsx.
16
16
 
@@ -14,7 +14,7 @@ import {
14
14
  useAppSelectorWithStableTest,
15
15
  } from "../../helper/selectorTestHelpers";
16
16
  import { mockGetBoundingClientRect } from "../../helper/mockGetBoundingClientRect";
17
- import { render } from "../../helper/render";
17
+ import { render } from "@solidjs/testing-library";
18
18
 
19
19
  // Ported from recharts 3.8.1 test/state/selectors/legendSelectors.spec.tsx.
20
20
 
@@ -7,7 +7,7 @@
7
7
  // asserts the selector VALUE before/after the click (render-count assertions dropped).
8
8
  import { createEffect, createSignal, flush } from "solid-js";
9
9
  import { describe, expect, it, vi } from "vitest";
10
- import { fireEvent, render } from "../../helper/render";
10
+ import { fireEvent, render } from "@solidjs/testing-library";
11
11
  import { useAppSelectorWithStableTest } from "../../helper/selectorTestHelpers";
12
12
  import { RechartsRootState } from "../../../src/state/store";
13
13
  import {
@@ -1,6 +1,6 @@
1
1
  import { beforeEach, describe, it } from "vitest";
2
2
  import { flush } from "solid-js";
3
- import { fireEvent } from "../../helper/render";
3
+ import { fireEvent } from "@solidjs/testing-library";
4
4
  import { createSelectorTestCase } from "../../helper/createSelectorTestCase";
5
5
  import { RadialBar, RadialBarChart, Tooltip } from "../../../src";
6
6
  import { PageData } from "../../_data";
@@ -16,7 +16,7 @@ import {
16
16
  useAppSelectorWithStableTest,
17
17
  } from "../../helper/selectorTestHelpers";
18
18
  import { expectLastCalledWith } from "../../helper/expectLastCalledWith";
19
- import { render } from "../../helper/render";
19
+ import { render } from "@solidjs/testing-library";
20
20
 
21
21
  const data1 = [
22
22
  { label: "Iter: 0", x: 211, y: 481, z: 1798 },
@@ -12,7 +12,7 @@
12
12
  import { createSignal, flush } from "solid-js";
13
13
  import type { JSX } from "@solidjs/web";
14
14
  import { describe, expect, it } from "vitest";
15
- import { fireEvent } from "../../helper/render";
15
+ import { fireEvent } from "@solidjs/testing-library";
16
16
  import type { RechartsRootState } from "../../../src/state/store";
17
17
  import { selectStackGroups } from "../../../src/state/selectors/axisSelectors";
18
18
  import {