@scrippsproduct/networks-ui-library 1.1.9 → 1.1.10
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/{Form.module-Cd8qH2rj.mjs → Form.module-CarfWK5T.mjs} +1 -1
- package/dist/ResultsTable.module-wcNUQEKe.mjs +14 -0
- package/dist/_commonjsHelpers-DaMA6jEr.mjs +8 -0
- package/dist/assets/ResultsTable.css +1 -1
- package/dist/{chevron-left-DRvpaLmK.mjs → chevron-left-D0UjbrKw.mjs} +1 -1
- package/dist/{chevron-right-C8yCnmfx.mjs → chevron-right-0ZF3LruR.mjs} +1 -1
- package/dist/components/ActionButton/ActionButton.test.js +209 -0
- package/dist/components/AdBlock/AdBlock.test.js +286 -0
- package/dist/components/AdjustableTwoColumnGrid/AdjustableTwoColumnGrid.test.js +295 -0
- package/dist/components/AirDateFormatter/AirDateFormatter.test.js +192 -0
- package/dist/components/AnchorTag/AnchorTag.test.js +463 -0
- package/dist/components/BCVideoPlayer/BCVideoPlayer.test.js +295 -0
- package/dist/components/BasicGridModule/BasicGridModule.js +41 -37
- package/dist/components/BasicGridModule/BasicGridModule.test.js +227 -0
- package/dist/components/Button/Button.test.js +434 -0
- package/dist/components/Carousel/Carousel.js +2 -2
- package/dist/components/Carousel/Carousel.test.js +705 -0
- package/dist/components/CarouselSlide/CarouselSlide.test.js +378 -0
- package/dist/components/CarouselSlide/slide-layouts/TwoColumn/TwoColumnSlide.js +1 -1
- package/dist/components/CastInfoLayout/CastInfoLayout.test.js +294 -0
- package/dist/components/ChannelSearch/ChannelSearch.test.js +565 -0
- package/dist/components/ChoicesItem/ChoicesItem.test.js +428 -0
- package/dist/components/Concat/Concat.js +1 -1
- package/dist/components/Concat/Concat.test.js +115 -0
- package/dist/components/CtaBlock/CtaBlock.js +1 -1
- package/dist/components/CtaBlock/CtaBlock.test.js +226 -0
- package/dist/components/CustomDataList/CustomDataList.js +4 -4
- package/dist/components/CustomSelect/CustomSelect.js +86 -86
- package/dist/components/CustomSelect/CustomSelect.test.js +313 -0
- package/dist/components/DateNavigation/DateNavigation.js +10 -10
- package/dist/components/DateNavigation/DateNavigation.test.js +370 -0
- package/dist/components/DatePicker/DatePicker.js +1 -1
- package/dist/components/DeviceAndPlatformLists/DeviceAndPlatformLists.test.js +288 -0
- package/dist/components/DrawerNavigation/DrawerNavigation.test.js +316 -0
- package/dist/components/EqualSizeFlexRow/EqualSizeFlexRow.test.js +337 -0
- package/dist/components/EqualSizeGrid/EqualSizeGrid.test.js +358 -0
- package/dist/components/ErrorHandler/ErrorHandler.js +2 -2
- package/dist/components/ErrorHandler/ErrorHandler.test.js +158 -0
- package/dist/components/FeaturedList/FeaturedList.test.js +353 -0
- package/dist/components/Figure/Figure.js +1 -1
- package/dist/components/Figure/Figure.test.js +198 -0
- package/dist/components/FindUs/FindUs.test.js +499 -0
- package/dist/components/FooterNavigation/FooterNavigation.test.js +310 -0
- package/dist/components/GenericList/GenericList.js +1 -1
- package/dist/components/GenericList/GenericList.test.js +288 -0
- package/dist/components/GetAirdateWrapper/GetAirdateWrapper.test.js +689 -0
- package/dist/components/GradientButton/GradientButton.d.ts +1 -1
- package/dist/components/GradientButton/GradientButton.js +33 -31
- package/dist/components/GradientButton/GradientButton.test.js +457 -0
- package/dist/components/GridList/GridList.test.js +371 -0
- package/dist/components/ImageCard/ImageCard.test.js +668 -0
- package/dist/components/ImageCard/ImageCardCore.js +28 -28
- package/dist/components/ImageCard/ImageCardCore.test.js +577 -0
- package/dist/components/ImageReplacementAnchor/ImageReplacementAnchor.test.js +379 -0
- package/dist/components/InfoPanel/InfoPanel.js +1 -1
- package/dist/components/InlineNavigation/InlineNavigation.test.js +149 -0
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/Input/Input.test.js +263 -0
- package/dist/components/InstructionsList/InstructionsList.js +11 -11
- package/dist/components/InstructionsList/InstructionsList.test.js +181 -0
- package/dist/components/LogoListItem/LogoListItem.test.js +303 -0
- package/dist/components/LogoNavigation/LogoNavigation.test.js +352 -0
- package/dist/components/ModalContainer/ModalContainer.js +2 -2
- package/dist/components/NavList/NavList.test.js +332 -0
- package/dist/components/Overlay/Overlay.js +24 -23
- package/dist/components/Overlay/Overlay.test.js +198 -0
- package/dist/components/PageHero/PageHero.test.js +241 -0
- package/dist/components/PageHero/page-hero-layouts/IONShow/IONShowHero.js +1 -1
- package/dist/components/ProgramAirdate/ProgramAirdate.js +1 -1
- package/dist/components/ProgramAirdate/ProgramAirdate.test.js +414 -0
- package/dist/components/PromotionBlock/PromotionBlock.test.js +208 -0
- package/dist/components/PromotionsRowBlock/PromotionsRowBlock.test.js +221 -0
- package/dist/components/PromotionsRowModule/PromotionsRowModule.test.js +349 -0
- package/dist/components/RescanInstructions/RescanInstructions.test.js +218 -0
- package/dist/components/ResponsiveImage/ResponsiveImage.test.js +264 -0
- package/dist/components/ResultsTable/ResultsTable.js +9 -2
- package/dist/components/ResultsTable/ResultsTable.test.js +402 -0
- package/dist/components/ResultsTableBody/ResultsTableBody.js +1 -1
- package/dist/components/ResultsTableBody/ResultsTableBody.test.js +445 -0
- package/dist/components/ResultsTableHeader/ResultsTableHeader.js +37 -15
- package/dist/components/ResultsTableHeader/ResultsTableHeader.test.js +275 -0
- package/dist/components/ScheduleLayout/ScheduleContext.js +654 -626
- package/dist/components/ScheduleLayout/ScheduleLayout.js +1 -1
- package/dist/components/ScheduleLayout/useScheduleContext.js +5 -10
- package/dist/components/ScheduleList/ScheduleList.js +1 -1
- package/dist/components/SectionedContent/SectionedContent.js +1 -1
- package/dist/components/SectionedContent/SectionedContent.test.js +341 -0
- package/dist/components/Select/Select.js +24 -24
- package/dist/components/Select/Select.test.js +367 -0
- package/dist/components/ShowAboutContent/ShowAboutContent.js +1 -1
- package/dist/components/ShowAboutContent/ShowAboutContent.test.js +535 -0
- package/dist/components/ShowAboutLayout/ShowAboutLayout.test.js +570 -0
- package/dist/components/SocialLinks/SocialLinks.js +1 -1
- package/dist/components/StringList/StringList.js +1 -1
- package/dist/components/StringList/StringList.test.js +311 -0
- package/dist/components/TabContent/TabContent.js +1 -1
- package/dist/components/TabContent/TabContent.test.js +274 -0
- package/dist/components/TabNavigation/TabNavigation.js +21 -21
- package/dist/components/TabNavigation/TabNavigation.test.js +535 -0
- package/dist/components/TabbedContent/TabbedContent.test.js +654 -0
- package/dist/components/TextArea/TextArea.js +1 -1
- package/dist/components/UpcomingList/UpcomingList.test.js +471 -0
- package/dist/{index-VjANCDXC.mjs → index-06PEPfBQ.mjs} +1 -1
- package/dist/index-BUN4jQ3m.mjs +3098 -0
- package/dist/index-BVxBrkZB.mjs +3 -0
- package/dist/{index-DC2JJV3a.mjs → index-D3kkcgee.mjs} +1 -1
- package/dist/{index-C-kn9Zhn.mjs → index-DzfYkULW.mjs} +2 -1
- package/dist/magic-string.es-uPKorP4O.mjs +663 -0
- package/dist/matchers-35e4d3bd-BBPNTlen.mjs +2404 -0
- package/dist/react.esm-DLSrfVwM.mjs +23410 -0
- package/dist/test/setupTests.d.ts +1 -0
- package/dist/test/setupTests.js +55 -0
- package/dist/{triangle-PcCcGXjr.mjs → triangle-C4z906Wf.mjs} +1 -1
- package/dist/useScheduleContext-D7FdzNxe.mjs +17 -0
- package/dist/utils/analytics.js +1 -1
- package/dist/utils/getOnNowProgram.js +10 -10
- package/dist/{x-C-QzJ-qD.mjs → x-Ck9Vk5Fo.mjs} +1 -1
- package/package.json +4 -1
- package/dist/ResultsTable.module-1zxhXaem.mjs +0 -14
- package/dist/_commonjsHelpers-C6fGbg64.mjs +0 -6
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { v as y, d, i as a, r, g as l, s as u } from "../../react.esm-DLSrfVwM.mjs";
|
|
3
|
+
import { ResultsTable as n } from "./ResultsTable.js";
|
|
4
|
+
y.mock("../ResultsTableHeader", () => ({
|
|
5
|
+
default: ({ columns: t }) => /* @__PURE__ */ o("div", { "data-columns": JSON.stringify(t), "data-testid": "results-table-header", children: "ResultsTableHeader Mock" })
|
|
6
|
+
}));
|
|
7
|
+
y.mock("../ResultsTableBody", () => ({
|
|
8
|
+
default: ({
|
|
9
|
+
columns: t,
|
|
10
|
+
results: e,
|
|
11
|
+
noResultsMsg: s
|
|
12
|
+
}) => /* @__PURE__ */ o(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
"data-columns": JSON.stringify(t),
|
|
16
|
+
"data-no-results-msg": s,
|
|
17
|
+
"data-results": JSON.stringify(e),
|
|
18
|
+
"data-testid": "results-table-body",
|
|
19
|
+
children: "ResultsTableBody Mock"
|
|
20
|
+
}
|
|
21
|
+
)
|
|
22
|
+
}));
|
|
23
|
+
d("ResultsTable", () => {
|
|
24
|
+
d("Basic Rendering", () => {
|
|
25
|
+
a("should render wrapper div", () => {
|
|
26
|
+
const t = [
|
|
27
|
+
{ title: "Name", resultKey: "name" }
|
|
28
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div.results-table");
|
|
29
|
+
l(s).toBeInTheDocument();
|
|
30
|
+
}), a("should render ResultsTableHeader component", () => {
|
|
31
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
32
|
+
{ title: "Name", resultKey: "name" }
|
|
33
|
+
], results: [] }));
|
|
34
|
+
const e = u.getByTestId("results-table-header");
|
|
35
|
+
l(e).toBeInTheDocument();
|
|
36
|
+
}), a("should render ResultsTableBody component", () => {
|
|
37
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
38
|
+
{ title: "Name", resultKey: "name" }
|
|
39
|
+
], results: [] }));
|
|
40
|
+
const e = u.getByTestId("results-table-body");
|
|
41
|
+
l(e).toBeInTheDocument();
|
|
42
|
+
}), a("should render header before body", () => {
|
|
43
|
+
const t = [
|
|
44
|
+
{ title: "Name", resultKey: "name" }
|
|
45
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div.results-table"), c = Array.from((s == null ? void 0 : s.children) || []);
|
|
46
|
+
l(c[0]).toHaveAttribute("data-testid", "results-table-header"), l(c[1]).toHaveAttribute("data-testid", "results-table-body");
|
|
47
|
+
});
|
|
48
|
+
}), d("Columns Prop", () => {
|
|
49
|
+
a("should pass columns to ResultsTableHeader", () => {
|
|
50
|
+
const t = [
|
|
51
|
+
{ title: "Name", resultKey: "name" },
|
|
52
|
+
{ title: "Age", resultKey: "age" }
|
|
53
|
+
];
|
|
54
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
55
|
+
const e = u.getByTestId("results-table-header");
|
|
56
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
57
|
+
}), a("should pass columns to ResultsTableBody", () => {
|
|
58
|
+
const t = [
|
|
59
|
+
{ title: "Name", resultKey: "name" },
|
|
60
|
+
{ title: "Age", resultKey: "age" }
|
|
61
|
+
];
|
|
62
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
63
|
+
const e = u.getByTestId("results-table-body");
|
|
64
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
65
|
+
}), a("should handle single column", () => {
|
|
66
|
+
const t = [
|
|
67
|
+
{ title: "Name", resultKey: "name" }
|
|
68
|
+
];
|
|
69
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
70
|
+
const e = u.getByTestId("results-table-header"), s = u.getByTestId("results-table-body");
|
|
71
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t)), l(s).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
72
|
+
}), a("should handle multiple columns", () => {
|
|
73
|
+
const t = [
|
|
74
|
+
{ title: "Name", resultKey: "name" },
|
|
75
|
+
{ title: "Email", resultKey: "email" },
|
|
76
|
+
{ title: "Phone", resultKey: "phone" },
|
|
77
|
+
{ title: "City", resultKey: "city" }
|
|
78
|
+
];
|
|
79
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
80
|
+
const e = u.getByTestId("results-table-header");
|
|
81
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
82
|
+
}), a("should handle empty columns array", () => {
|
|
83
|
+
r(/* @__PURE__ */ o(n, { columns: [], results: [] }));
|
|
84
|
+
const e = u.getByTestId("results-table-header");
|
|
85
|
+
l(e).toHaveAttribute("data-columns", "[]");
|
|
86
|
+
}), a("should handle columns with special characters in title", () => {
|
|
87
|
+
const t = [
|
|
88
|
+
{ title: "Name & Surname", resultKey: "name" },
|
|
89
|
+
{ title: "Age (years)", resultKey: "age" }
|
|
90
|
+
];
|
|
91
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
92
|
+
const e = u.getByTestId("results-table-header");
|
|
93
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
94
|
+
});
|
|
95
|
+
}), d("Results Prop", () => {
|
|
96
|
+
a("should pass results to ResultsTableBody", () => {
|
|
97
|
+
const t = [
|
|
98
|
+
{ title: "Name", resultKey: "name" }
|
|
99
|
+
], e = [
|
|
100
|
+
{ name: "John Doe" }
|
|
101
|
+
];
|
|
102
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
103
|
+
const s = u.getByTestId("results-table-body");
|
|
104
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
105
|
+
}), a("should handle empty results array", () => {
|
|
106
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
107
|
+
{ title: "Name", resultKey: "name" }
|
|
108
|
+
], results: [] }));
|
|
109
|
+
const s = u.getByTestId("results-table-body");
|
|
110
|
+
l(s).toHaveAttribute("data-results", "[]");
|
|
111
|
+
}), a("should handle single result row", () => {
|
|
112
|
+
const t = [
|
|
113
|
+
{ title: "Name", resultKey: "name" },
|
|
114
|
+
{ title: "Age", resultKey: "age" }
|
|
115
|
+
], e = [
|
|
116
|
+
{ name: "John Doe", age: 30 }
|
|
117
|
+
];
|
|
118
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
119
|
+
const s = u.getByTestId("results-table-body");
|
|
120
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
121
|
+
}), a("should handle multiple result rows", () => {
|
|
122
|
+
const t = [
|
|
123
|
+
{ title: "Name", resultKey: "name" }
|
|
124
|
+
], e = [
|
|
125
|
+
{ name: "John Doe" },
|
|
126
|
+
{ name: "Jane Smith" },
|
|
127
|
+
{ name: "Bob Johnson" }
|
|
128
|
+
];
|
|
129
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
130
|
+
const s = u.getByTestId("results-table-body");
|
|
131
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
132
|
+
}), a("should handle results with string values", () => {
|
|
133
|
+
const t = [
|
|
134
|
+
{ title: "Name", resultKey: "name" }
|
|
135
|
+
], e = [
|
|
136
|
+
{ name: "John Doe" }
|
|
137
|
+
];
|
|
138
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
139
|
+
const s = u.getByTestId("results-table-body");
|
|
140
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
141
|
+
}), a("should handle results with number values", () => {
|
|
142
|
+
const t = [
|
|
143
|
+
{ title: "Age", resultKey: "age" },
|
|
144
|
+
{ title: "Score", resultKey: "score" }
|
|
145
|
+
], e = [
|
|
146
|
+
{ age: 30, score: 95 }
|
|
147
|
+
];
|
|
148
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
149
|
+
const s = u.getByTestId("results-table-body");
|
|
150
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
151
|
+
}), a("should handle results with mixed string and number values", () => {
|
|
152
|
+
const t = [
|
|
153
|
+
{ title: "Name", resultKey: "name" },
|
|
154
|
+
{ title: "Age", resultKey: "age" }
|
|
155
|
+
], e = [
|
|
156
|
+
{ name: "John Doe", age: 30 },
|
|
157
|
+
{ name: "Jane Smith", age: 25 }
|
|
158
|
+
];
|
|
159
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
160
|
+
const s = u.getByTestId("results-table-body");
|
|
161
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
162
|
+
});
|
|
163
|
+
}), d("NoResultsMsg Prop", () => {
|
|
164
|
+
a("should pass noResultsMsg to ResultsTableBody", () => {
|
|
165
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
166
|
+
{ title: "Name", resultKey: "name" }
|
|
167
|
+
], noResultsMsg: "Custom message", results: [] }));
|
|
168
|
+
const e = u.getByTestId("results-table-body");
|
|
169
|
+
l(e).toHaveAttribute("data-no-results-msg", "Custom message");
|
|
170
|
+
}), a("should use default noResultsMsg when not provided", () => {
|
|
171
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
172
|
+
{ title: "Name", resultKey: "name" }
|
|
173
|
+
], results: [] }));
|
|
174
|
+
const e = u.getByTestId("results-table-body");
|
|
175
|
+
l(e).toHaveAttribute("data-no-results-msg", "No results were returned");
|
|
176
|
+
}), a("should handle empty string noResultsMsg", () => {
|
|
177
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
178
|
+
{ title: "Name", resultKey: "name" }
|
|
179
|
+
], noResultsMsg: "", results: [] }));
|
|
180
|
+
const e = u.getByTestId("results-table-body");
|
|
181
|
+
l(e).toHaveAttribute("data-no-results-msg", "");
|
|
182
|
+
}), a("should handle long noResultsMsg", () => {
|
|
183
|
+
const t = [
|
|
184
|
+
{ title: "Name", resultKey: "name" }
|
|
185
|
+
], e = "No results were found matching your search criteria. Please try adjusting your filters or search terms.";
|
|
186
|
+
r(/* @__PURE__ */ o(n, { columns: t, noResultsMsg: e, results: [] }));
|
|
187
|
+
const s = u.getByTestId("results-table-body");
|
|
188
|
+
l(s).toHaveAttribute("data-no-results-msg", e);
|
|
189
|
+
});
|
|
190
|
+
}), d("CompactLayout Prop", () => {
|
|
191
|
+
a("should add compact class when compactLayout is true", () => {
|
|
192
|
+
const t = [
|
|
193
|
+
{ title: "Name", resultKey: "name" }
|
|
194
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { compactLayout: !0, columns: t, results: [] })), s = e.querySelector("div.results-table");
|
|
195
|
+
l(s).toHaveClass("results-table--compact");
|
|
196
|
+
}), a("should not add compact class when compactLayout is false", () => {
|
|
197
|
+
const t = [
|
|
198
|
+
{ title: "Name", resultKey: "name" }
|
|
199
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, compactLayout: !1, results: [] })), s = e.querySelector("div.results-table");
|
|
200
|
+
l(s).not.toHaveClass("results-table--compact");
|
|
201
|
+
}), a("should not add compact class when compactLayout is undefined", () => {
|
|
202
|
+
const t = [
|
|
203
|
+
{ title: "Name", resultKey: "name" }
|
|
204
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div.results-table");
|
|
205
|
+
l(s).not.toHaveClass("results-table--compact");
|
|
206
|
+
}), a("should add both module and non-module compact classes", () => {
|
|
207
|
+
const t = [
|
|
208
|
+
{ title: "Name", resultKey: "name" }
|
|
209
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { compactLayout: !0, columns: t, results: [] })), s = e.querySelector("div.results-table");
|
|
210
|
+
l(s == null ? void 0 : s.className).toContain("results-table--compact");
|
|
211
|
+
});
|
|
212
|
+
}), d("CSS Classes", () => {
|
|
213
|
+
a("should apply results-table class", () => {
|
|
214
|
+
const t = [
|
|
215
|
+
{ title: "Name", resultKey: "name" }
|
|
216
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div");
|
|
217
|
+
l(s).toHaveClass("results-table");
|
|
218
|
+
}), a("should apply fade-in__wrapper class", () => {
|
|
219
|
+
const t = [
|
|
220
|
+
{ title: "Name", resultKey: "name" }
|
|
221
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div");
|
|
222
|
+
l(s).toHaveClass("fade-in__wrapper");
|
|
223
|
+
}), a("should combine multiple classes", () => {
|
|
224
|
+
const t = [
|
|
225
|
+
{ title: "Name", resultKey: "name" }
|
|
226
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { compactLayout: !0, columns: t, results: [] })), s = e.querySelector("div");
|
|
227
|
+
l(s).toHaveClass("results-table"), l(s).toHaveClass("fade-in__wrapper"), l(s).toHaveClass("results-table--compact");
|
|
228
|
+
});
|
|
229
|
+
}), d("Default Props", () => {
|
|
230
|
+
a("should use default empty arrays when columns not provided", () => {
|
|
231
|
+
r(/* @__PURE__ */ o(n, { columns: [], results: [] }));
|
|
232
|
+
const t = u.getByTestId("results-table-header");
|
|
233
|
+
l(t).toHaveAttribute("data-columns", "[]");
|
|
234
|
+
}), a("should use default empty array when results not provided", () => {
|
|
235
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
236
|
+
{ title: "Name", resultKey: "name" }
|
|
237
|
+
], results: [] }));
|
|
238
|
+
const e = u.getByTestId("results-table-body");
|
|
239
|
+
l(e).toHaveAttribute("data-results", "[]");
|
|
240
|
+
}), a("should use default noResultsMsg", () => {
|
|
241
|
+
r(/* @__PURE__ */ o(n, { columns: [
|
|
242
|
+
{ title: "Name", resultKey: "name" }
|
|
243
|
+
], results: [] }));
|
|
244
|
+
const e = u.getByTestId("results-table-body");
|
|
245
|
+
l(e).toHaveAttribute("data-no-results-msg", "No results were returned");
|
|
246
|
+
}), a("should use default compactLayout false", () => {
|
|
247
|
+
const t = [
|
|
248
|
+
{ title: "Name", resultKey: "name" }
|
|
249
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div.results-table");
|
|
250
|
+
l(s).not.toHaveClass("results-table--compact");
|
|
251
|
+
});
|
|
252
|
+
}), d("Integration Tests", () => {
|
|
253
|
+
a("should render complete table with all props", () => {
|
|
254
|
+
const t = [
|
|
255
|
+
{ title: "Name", resultKey: "name" },
|
|
256
|
+
{ title: "Email", resultKey: "email" },
|
|
257
|
+
{ title: "Age", resultKey: "age" }
|
|
258
|
+
], e = [
|
|
259
|
+
{ name: "John Doe", email: "john@example.com", age: 30 },
|
|
260
|
+
{ name: "Jane Smith", email: "jane@example.com", age: 25 }
|
|
261
|
+
], { container: s } = r(
|
|
262
|
+
/* @__PURE__ */ o(
|
|
263
|
+
n,
|
|
264
|
+
{
|
|
265
|
+
compactLayout: !0,
|
|
266
|
+
columns: t,
|
|
267
|
+
noResultsMsg: "No data found",
|
|
268
|
+
results: e
|
|
269
|
+
}
|
|
270
|
+
)
|
|
271
|
+
), c = s.querySelector("div.results-table"), m = u.getByTestId("results-table-header"), i = u.getByTestId("results-table-body");
|
|
272
|
+
l(c).toBeInTheDocument(), l(c).toHaveClass("results-table--compact"), l(m).toHaveAttribute("data-columns", JSON.stringify(t)), l(i).toHaveAttribute("data-columns", JSON.stringify(t)), l(i).toHaveAttribute("data-results", JSON.stringify(e)), l(i).toHaveAttribute("data-no-results-msg", "No data found");
|
|
273
|
+
}), a("should render minimal table with only required props", () => {
|
|
274
|
+
const t = [
|
|
275
|
+
{ title: "Name", resultKey: "name" }
|
|
276
|
+
], { container: e } = r(/* @__PURE__ */ o(n, { columns: t, results: [] })), s = e.querySelector("div.results-table"), c = u.getByTestId("results-table-header"), m = u.getByTestId("results-table-body");
|
|
277
|
+
l(s).toBeInTheDocument(), l(c).toBeInTheDocument(), l(m).toBeInTheDocument();
|
|
278
|
+
}), a("should handle large dataset", () => {
|
|
279
|
+
const t = [
|
|
280
|
+
{ title: "ID", resultKey: "id" },
|
|
281
|
+
{ title: "Name", resultKey: "name" }
|
|
282
|
+
], e = Array.from({ length: 100 }, (c, m) => ({
|
|
283
|
+
id: m + 1,
|
|
284
|
+
name: `User ${m + 1}`
|
|
285
|
+
}));
|
|
286
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
287
|
+
const s = u.getByTestId("results-table-body");
|
|
288
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
289
|
+
}), a("should pass same columns to both header and body", () => {
|
|
290
|
+
const t = [
|
|
291
|
+
{ title: "Name", resultKey: "name" },
|
|
292
|
+
{ title: "Age", resultKey: "age" }
|
|
293
|
+
];
|
|
294
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
295
|
+
const e = u.getByTestId("results-table-header"), s = u.getByTestId("results-table-body"), c = e.getAttribute("data-columns"), m = s.getAttribute("data-columns");
|
|
296
|
+
l(c).toBe(m), l(c).toBe(JSON.stringify(t));
|
|
297
|
+
});
|
|
298
|
+
}), d("Type Safety", () => {
|
|
299
|
+
a("should accept valid column definitions", () => {
|
|
300
|
+
const t = [
|
|
301
|
+
{ title: "Name", resultKey: "name" },
|
|
302
|
+
{ title: "Age", resultKey: "age" }
|
|
303
|
+
];
|
|
304
|
+
l(() => {
|
|
305
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
306
|
+
}).not.toThrow();
|
|
307
|
+
}), a("should accept valid result rows with strings", () => {
|
|
308
|
+
const t = [
|
|
309
|
+
{ title: "Name", resultKey: "name" }
|
|
310
|
+
], e = [
|
|
311
|
+
{ name: "John Doe", email: "john@example.com" }
|
|
312
|
+
];
|
|
313
|
+
l(() => {
|
|
314
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
315
|
+
}).not.toThrow();
|
|
316
|
+
}), a("should accept valid result rows with numbers", () => {
|
|
317
|
+
const t = [
|
|
318
|
+
{ title: "Age", resultKey: "age" }
|
|
319
|
+
], e = [
|
|
320
|
+
{ age: 30, score: 95 }
|
|
321
|
+
];
|
|
322
|
+
l(() => {
|
|
323
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
324
|
+
}).not.toThrow();
|
|
325
|
+
}), a("should accept valid result rows with mixed types", () => {
|
|
326
|
+
const t = [
|
|
327
|
+
{ title: "Name", resultKey: "name" },
|
|
328
|
+
{ title: "Age", resultKey: "age" }
|
|
329
|
+
], e = [
|
|
330
|
+
{ name: "John Doe", age: 30, active: "yes", score: 95 }
|
|
331
|
+
];
|
|
332
|
+
l(() => {
|
|
333
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
334
|
+
}).not.toThrow();
|
|
335
|
+
}), a("should accept empty arrays for columns and results", () => {
|
|
336
|
+
const t = [], e = [];
|
|
337
|
+
l(() => {
|
|
338
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
339
|
+
}).not.toThrow();
|
|
340
|
+
});
|
|
341
|
+
}), d("Edge Cases", () => {
|
|
342
|
+
a("should handle very long column titles", () => {
|
|
343
|
+
const t = [
|
|
344
|
+
{ title: "This is a very long column title that might wrap or overflow", resultKey: "longTitle" }
|
|
345
|
+
];
|
|
346
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
347
|
+
const e = u.getByTestId("results-table-header");
|
|
348
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
349
|
+
}), a("should handle columns with empty strings", () => {
|
|
350
|
+
const t = [
|
|
351
|
+
{ title: "", resultKey: "empty" }
|
|
352
|
+
];
|
|
353
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
354
|
+
const e = u.getByTestId("results-table-header");
|
|
355
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
356
|
+
}), a("should handle results with extra fields not in columns", () => {
|
|
357
|
+
const t = [
|
|
358
|
+
{ title: "Name", resultKey: "name" }
|
|
359
|
+
], e = [
|
|
360
|
+
{ name: "John Doe", email: "john@example.com", age: 30 }
|
|
361
|
+
];
|
|
362
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
363
|
+
const s = u.getByTestId("results-table-body");
|
|
364
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
365
|
+
}), a("should handle many columns", () => {
|
|
366
|
+
const t = Array.from({ length: 20 }, (s, c) => ({
|
|
367
|
+
title: `Column ${c + 1}`,
|
|
368
|
+
resultKey: `col${c + 1}`
|
|
369
|
+
}));
|
|
370
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: [] }));
|
|
371
|
+
const e = u.getByTestId("results-table-header");
|
|
372
|
+
l(e).toHaveAttribute("data-columns", JSON.stringify(t));
|
|
373
|
+
}), a("should handle special characters in result values", () => {
|
|
374
|
+
const t = [
|
|
375
|
+
{ title: "Name", resultKey: "name" }
|
|
376
|
+
], e = [
|
|
377
|
+
{ name: `John "Johnny" O'Brien & Sons` }
|
|
378
|
+
];
|
|
379
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
380
|
+
const s = u.getByTestId("results-table-body");
|
|
381
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
382
|
+
}), a("should handle numeric zero values", () => {
|
|
383
|
+
const t = [
|
|
384
|
+
{ title: "Score", resultKey: "score" }
|
|
385
|
+
], e = [
|
|
386
|
+
{ score: 0 }
|
|
387
|
+
];
|
|
388
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
389
|
+
const s = u.getByTestId("results-table-body");
|
|
390
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
391
|
+
}), a("should handle empty string values", () => {
|
|
392
|
+
const t = [
|
|
393
|
+
{ title: "Name", resultKey: "name" }
|
|
394
|
+
], e = [
|
|
395
|
+
{ name: "" }
|
|
396
|
+
];
|
|
397
|
+
r(/* @__PURE__ */ o(n, { columns: t, results: e }));
|
|
398
|
+
const s = u.getByTestId("results-table-body");
|
|
399
|
+
l(s).toHaveAttribute("data-results", JSON.stringify(e));
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t, Fragment as m, jsxs as _ } from "react/jsx-runtime";
|
|
2
2
|
import { classes as l } from "../../utils/helpers.js";
|
|
3
|
-
import { s as e } from "../../ResultsTable.module-
|
|
3
|
+
import { s as e } from "../../ResultsTable.module-wcNUQEKe.mjs";
|
|
4
4
|
function c({ results: r = [], columns: u = [], noResultsMsg: b = "No results were returned" }) {
|
|
5
5
|
return r.length > 0 ? /* @__PURE__ */ t(m, { children: r.map((a, i) => /* @__PURE__ */ t(
|
|
6
6
|
"div",
|