@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.
Files changed (120) hide show
  1. package/dist/{Form.module-Cd8qH2rj.mjs → Form.module-CarfWK5T.mjs} +1 -1
  2. package/dist/ResultsTable.module-wcNUQEKe.mjs +14 -0
  3. package/dist/_commonjsHelpers-DaMA6jEr.mjs +8 -0
  4. package/dist/assets/ResultsTable.css +1 -1
  5. package/dist/{chevron-left-DRvpaLmK.mjs → chevron-left-D0UjbrKw.mjs} +1 -1
  6. package/dist/{chevron-right-C8yCnmfx.mjs → chevron-right-0ZF3LruR.mjs} +1 -1
  7. package/dist/components/ActionButton/ActionButton.test.js +209 -0
  8. package/dist/components/AdBlock/AdBlock.test.js +286 -0
  9. package/dist/components/AdjustableTwoColumnGrid/AdjustableTwoColumnGrid.test.js +295 -0
  10. package/dist/components/AirDateFormatter/AirDateFormatter.test.js +192 -0
  11. package/dist/components/AnchorTag/AnchorTag.test.js +463 -0
  12. package/dist/components/BCVideoPlayer/BCVideoPlayer.test.js +295 -0
  13. package/dist/components/BasicGridModule/BasicGridModule.js +41 -37
  14. package/dist/components/BasicGridModule/BasicGridModule.test.js +227 -0
  15. package/dist/components/Button/Button.test.js +434 -0
  16. package/dist/components/Carousel/Carousel.js +2 -2
  17. package/dist/components/Carousel/Carousel.test.js +705 -0
  18. package/dist/components/CarouselSlide/CarouselSlide.test.js +378 -0
  19. package/dist/components/CarouselSlide/slide-layouts/TwoColumn/TwoColumnSlide.js +1 -1
  20. package/dist/components/CastInfoLayout/CastInfoLayout.test.js +294 -0
  21. package/dist/components/ChannelSearch/ChannelSearch.test.js +565 -0
  22. package/dist/components/ChoicesItem/ChoicesItem.test.js +428 -0
  23. package/dist/components/Concat/Concat.js +1 -1
  24. package/dist/components/Concat/Concat.test.js +115 -0
  25. package/dist/components/CtaBlock/CtaBlock.js +1 -1
  26. package/dist/components/CtaBlock/CtaBlock.test.js +226 -0
  27. package/dist/components/CustomDataList/CustomDataList.js +4 -4
  28. package/dist/components/CustomSelect/CustomSelect.js +86 -86
  29. package/dist/components/CustomSelect/CustomSelect.test.js +313 -0
  30. package/dist/components/DateNavigation/DateNavigation.js +10 -10
  31. package/dist/components/DateNavigation/DateNavigation.test.js +370 -0
  32. package/dist/components/DatePicker/DatePicker.js +1 -1
  33. package/dist/components/DeviceAndPlatformLists/DeviceAndPlatformLists.test.js +288 -0
  34. package/dist/components/DrawerNavigation/DrawerNavigation.test.js +316 -0
  35. package/dist/components/EqualSizeFlexRow/EqualSizeFlexRow.test.js +337 -0
  36. package/dist/components/EqualSizeGrid/EqualSizeGrid.test.js +358 -0
  37. package/dist/components/ErrorHandler/ErrorHandler.js +2 -2
  38. package/dist/components/ErrorHandler/ErrorHandler.test.js +158 -0
  39. package/dist/components/FeaturedList/FeaturedList.test.js +353 -0
  40. package/dist/components/Figure/Figure.js +1 -1
  41. package/dist/components/Figure/Figure.test.js +198 -0
  42. package/dist/components/FindUs/FindUs.test.js +499 -0
  43. package/dist/components/FooterNavigation/FooterNavigation.test.js +310 -0
  44. package/dist/components/GenericList/GenericList.js +1 -1
  45. package/dist/components/GenericList/GenericList.test.js +288 -0
  46. package/dist/components/GetAirdateWrapper/GetAirdateWrapper.test.js +689 -0
  47. package/dist/components/GradientButton/GradientButton.d.ts +1 -1
  48. package/dist/components/GradientButton/GradientButton.js +33 -31
  49. package/dist/components/GradientButton/GradientButton.test.js +457 -0
  50. package/dist/components/GridList/GridList.test.js +371 -0
  51. package/dist/components/ImageCard/ImageCard.test.js +668 -0
  52. package/dist/components/ImageCard/ImageCardCore.js +28 -28
  53. package/dist/components/ImageCard/ImageCardCore.test.js +577 -0
  54. package/dist/components/ImageReplacementAnchor/ImageReplacementAnchor.test.js +379 -0
  55. package/dist/components/InfoPanel/InfoPanel.js +1 -1
  56. package/dist/components/InlineNavigation/InlineNavigation.test.js +149 -0
  57. package/dist/components/Input/Input.js +1 -1
  58. package/dist/components/Input/Input.test.js +263 -0
  59. package/dist/components/InstructionsList/InstructionsList.js +11 -11
  60. package/dist/components/InstructionsList/InstructionsList.test.js +181 -0
  61. package/dist/components/LogoListItem/LogoListItem.test.js +303 -0
  62. package/dist/components/LogoNavigation/LogoNavigation.test.js +352 -0
  63. package/dist/components/ModalContainer/ModalContainer.js +2 -2
  64. package/dist/components/NavList/NavList.test.js +332 -0
  65. package/dist/components/Overlay/Overlay.js +24 -23
  66. package/dist/components/Overlay/Overlay.test.js +198 -0
  67. package/dist/components/PageHero/PageHero.test.js +241 -0
  68. package/dist/components/PageHero/page-hero-layouts/IONShow/IONShowHero.js +1 -1
  69. package/dist/components/ProgramAirdate/ProgramAirdate.js +1 -1
  70. package/dist/components/ProgramAirdate/ProgramAirdate.test.js +414 -0
  71. package/dist/components/PromotionBlock/PromotionBlock.test.js +208 -0
  72. package/dist/components/PromotionsRowBlock/PromotionsRowBlock.test.js +221 -0
  73. package/dist/components/PromotionsRowModule/PromotionsRowModule.test.js +349 -0
  74. package/dist/components/RescanInstructions/RescanInstructions.test.js +218 -0
  75. package/dist/components/ResponsiveImage/ResponsiveImage.test.js +264 -0
  76. package/dist/components/ResultsTable/ResultsTable.js +9 -2
  77. package/dist/components/ResultsTable/ResultsTable.test.js +402 -0
  78. package/dist/components/ResultsTableBody/ResultsTableBody.js +1 -1
  79. package/dist/components/ResultsTableBody/ResultsTableBody.test.js +445 -0
  80. package/dist/components/ResultsTableHeader/ResultsTableHeader.js +37 -15
  81. package/dist/components/ResultsTableHeader/ResultsTableHeader.test.js +275 -0
  82. package/dist/components/ScheduleLayout/ScheduleContext.js +654 -626
  83. package/dist/components/ScheduleLayout/ScheduleLayout.js +1 -1
  84. package/dist/components/ScheduleLayout/useScheduleContext.js +5 -10
  85. package/dist/components/ScheduleList/ScheduleList.js +1 -1
  86. package/dist/components/SectionedContent/SectionedContent.js +1 -1
  87. package/dist/components/SectionedContent/SectionedContent.test.js +341 -0
  88. package/dist/components/Select/Select.js +24 -24
  89. package/dist/components/Select/Select.test.js +367 -0
  90. package/dist/components/ShowAboutContent/ShowAboutContent.js +1 -1
  91. package/dist/components/ShowAboutContent/ShowAboutContent.test.js +535 -0
  92. package/dist/components/ShowAboutLayout/ShowAboutLayout.test.js +570 -0
  93. package/dist/components/SocialLinks/SocialLinks.js +1 -1
  94. package/dist/components/StringList/StringList.js +1 -1
  95. package/dist/components/StringList/StringList.test.js +311 -0
  96. package/dist/components/TabContent/TabContent.js +1 -1
  97. package/dist/components/TabContent/TabContent.test.js +274 -0
  98. package/dist/components/TabNavigation/TabNavigation.js +21 -21
  99. package/dist/components/TabNavigation/TabNavigation.test.js +535 -0
  100. package/dist/components/TabbedContent/TabbedContent.test.js +654 -0
  101. package/dist/components/TextArea/TextArea.js +1 -1
  102. package/dist/components/UpcomingList/UpcomingList.test.js +471 -0
  103. package/dist/{index-VjANCDXC.mjs → index-06PEPfBQ.mjs} +1 -1
  104. package/dist/index-BUN4jQ3m.mjs +3098 -0
  105. package/dist/index-BVxBrkZB.mjs +3 -0
  106. package/dist/{index-DC2JJV3a.mjs → index-D3kkcgee.mjs} +1 -1
  107. package/dist/{index-C-kn9Zhn.mjs → index-DzfYkULW.mjs} +2 -1
  108. package/dist/magic-string.es-uPKorP4O.mjs +663 -0
  109. package/dist/matchers-35e4d3bd-BBPNTlen.mjs +2404 -0
  110. package/dist/react.esm-DLSrfVwM.mjs +23410 -0
  111. package/dist/test/setupTests.d.ts +1 -0
  112. package/dist/test/setupTests.js +55 -0
  113. package/dist/{triangle-PcCcGXjr.mjs → triangle-C4z906Wf.mjs} +1 -1
  114. package/dist/useScheduleContext-D7FdzNxe.mjs +17 -0
  115. package/dist/utils/analytics.js +1 -1
  116. package/dist/utils/getOnNowProgram.js +10 -10
  117. package/dist/{x-C-QzJ-qD.mjs → x-Ck9Vk5Fo.mjs} +1 -1
  118. package/package.json +4 -1
  119. package/dist/ResultsTable.module-1zxhXaem.mjs +0 -14
  120. package/dist/_commonjsHelpers-C6fGbg64.mjs +0 -6
@@ -0,0 +1,275 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { d as m, i as n, r, g as s, s as c } from "../../react.esm-DLSrfVwM.mjs";
3
+ import { ResultsTableHeader as a } from "./ResultsTableHeader.js";
4
+ m("ResultsTableHeader", () => {
5
+ m("Basic Rendering", () => {
6
+ n("should render header row wrapper", () => {
7
+ const e = [
8
+ { title: "Name", resultKey: "name" }
9
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header-row");
10
+ s(t).toBeInTheDocument();
11
+ }), n("should render header items for each column", () => {
12
+ const e = [
13
+ { title: "Name", resultKey: "name" },
14
+ { title: "Age", resultKey: "age" }
15
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
16
+ s(t).toHaveLength(2);
17
+ }), n("should render column titles", () => {
18
+ r(/* @__PURE__ */ o(a, { columns: [
19
+ { title: "Name", resultKey: "name" },
20
+ { title: "Email", resultKey: "email" }
21
+ ] })), s(c.getByText("Name")).toBeInTheDocument(), s(c.getByText("Email")).toBeInTheDocument();
22
+ }), n("should render all column titles in order", () => {
23
+ const e = [
24
+ { title: "First", resultKey: "first" },
25
+ { title: "Second", resultKey: "second" },
26
+ { title: "Third", resultKey: "third" }
27
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
28
+ s(t[0]).toHaveTextContent("First"), s(t[1]).toHaveTextContent("Second"), s(t[2]).toHaveTextContent("Third");
29
+ });
30
+ }), m("Columns Prop", () => {
31
+ n("should render one header per column", () => {
32
+ const e = [
33
+ { title: "Name", resultKey: "name" },
34
+ { title: "Age", resultKey: "age" },
35
+ { title: "Email", resultKey: "email" }
36
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
37
+ s(t).toHaveLength(3);
38
+ }), n("should handle single column", () => {
39
+ const e = [
40
+ { title: "Name", resultKey: "name" }
41
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
42
+ s(t).toHaveLength(1);
43
+ }), n("should handle multiple columns", () => {
44
+ const e = [
45
+ { title: "ID", resultKey: "id" },
46
+ { title: "Name", resultKey: "name" },
47
+ { title: "Email", resultKey: "email" },
48
+ { title: "Phone", resultKey: "phone" },
49
+ { title: "City", resultKey: "city" }
50
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
51
+ s(t).toHaveLength(5);
52
+ }), n("should handle empty columns array", () => {
53
+ const e = [], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
54
+ s(t).toHaveLength(0);
55
+ }), n("should use column title for header text", () => {
56
+ r(/* @__PURE__ */ o(a, { columns: [
57
+ { title: "Full Name", resultKey: "name" }
58
+ ] })), s(c.getByText("Full Name")).toBeInTheDocument();
59
+ }), n("should not render resultKey in header", () => {
60
+ r(/* @__PURE__ */ o(a, { columns: [
61
+ { title: "Name", resultKey: "fullNameField" }
62
+ ] })), s(c.getByText("Name")).toBeInTheDocument(), s(c.queryByText("fullNameField")).not.toBeInTheDocument();
63
+ });
64
+ }), m("Dynamic CSS Classes", () => {
65
+ n("should add dynamic class based on column title", () => {
66
+ const e = [
67
+ { title: "Name", resultKey: "name" }
68
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__name");
69
+ s(t).toBeInTheDocument();
70
+ }), n("should convert column title to lowercase for class", () => {
71
+ const e = [
72
+ { title: "EMAIL", resultKey: "email" }
73
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__email");
74
+ s(t).toBeInTheDocument();
75
+ }), n("should replace first space with hyphen in class", () => {
76
+ const e = [
77
+ { title: "Full Name", resultKey: "name" }
78
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__full-name");
79
+ s(t).toBeInTheDocument();
80
+ }), n("should handle multiple spaces in column title", () => {
81
+ const e = [
82
+ { title: "First Middle Last", resultKey: "name" }
83
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__first-middle");
84
+ s(t).toBeInTheDocument();
85
+ }), n("should apply different dynamic classes to different columns", () => {
86
+ const e = [
87
+ { title: "Name", resultKey: "name" },
88
+ { title: "Age", resultKey: "age" }
89
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e }));
90
+ s(l.querySelector(".results-table__name")).toBeInTheDocument(), s(l.querySelector(".results-table__age")).toBeInTheDocument();
91
+ });
92
+ }), m("Header Keys", () => {
93
+ n("should generate unique keys for headers", () => {
94
+ const e = [
95
+ { title: "Name", resultKey: "name" },
96
+ { title: "Age", resultKey: "age" },
97
+ { title: "Email", resultKey: "email" }
98
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
99
+ s(t).toHaveLength(3);
100
+ }), n("should use title-based keys for headers", () => {
101
+ const e = [
102
+ { title: "Name", resultKey: "name" }
103
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
104
+ s(t).toHaveLength(1);
105
+ });
106
+ }), m("CSS Classes", () => {
107
+ n("should apply results-table__row class to header row", () => {
108
+ const e = [
109
+ { title: "Name", resultKey: "name" }
110
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header-row");
111
+ s(t).toHaveClass("results-table__row");
112
+ }), n("should apply results-table__header-row class", () => {
113
+ const e = [
114
+ { title: "Name", resultKey: "name" }
115
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__row");
116
+ s(t).toHaveClass("results-table__header-row");
117
+ }), n("should apply results-table__header class to headers", () => {
118
+ const e = [
119
+ { title: "Name", resultKey: "name" }
120
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header");
121
+ s(t).toHaveClass("results-table__header");
122
+ }), n("should apply multiple classes to header row", () => {
123
+ const e = [
124
+ { title: "Name", resultKey: "name" }
125
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header-row");
126
+ s(t).toHaveClass("results-table__row"), s(t).toHaveClass("results-table__header-row");
127
+ }), n("should apply multiple classes to header items", () => {
128
+ const e = [
129
+ { title: "Name", resultKey: "name" }
130
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header");
131
+ s(t).toHaveClass("results-table__header"), s(t).toHaveClass("results-table__name");
132
+ });
133
+ }), m("Default Props", () => {
134
+ n("should use default empty columns array", () => {
135
+ const { container: e } = r(/* @__PURE__ */ o(a, { columns: [] })), l = e.querySelector(".results-table__header-row");
136
+ s(l).toBeInTheDocument();
137
+ const t = e.querySelectorAll(".results-table__header");
138
+ s(t).toHaveLength(0);
139
+ }), n("should render empty header row when no columns provided", () => {
140
+ const { container: e } = r(/* @__PURE__ */ o(a, { columns: [] })), l = e.querySelector(".results-table__header-row");
141
+ s(l).toBeInTheDocument(), s(l == null ? void 0 : l.children).toHaveLength(0);
142
+ });
143
+ }), m("Integration Tests", () => {
144
+ n("should render complete header with all columns", () => {
145
+ const e = [
146
+ { title: "ID", resultKey: "id" },
147
+ { title: "Name", resultKey: "name" },
148
+ { title: "Email", resultKey: "email" },
149
+ { title: "Phone", resultKey: "phone" }
150
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header-row");
151
+ s(t).toBeInTheDocument();
152
+ const u = l.querySelectorAll(".results-table__header");
153
+ s(u).toHaveLength(4), s(c.getByText("ID")).toBeInTheDocument(), s(c.getByText("Name")).toBeInTheDocument(), s(c.getByText("Email")).toBeInTheDocument(), s(c.getByText("Phone")).toBeInTheDocument();
154
+ }), n("should render headers with correct structure", () => {
155
+ const e = [
156
+ { title: "Name", resultKey: "name" },
157
+ { title: "Age", resultKey: "age" }
158
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header-row");
159
+ s(t == null ? void 0 : t.children).toHaveLength(2);
160
+ const u = t == null ? void 0 : t.children[0], i = t == null ? void 0 : t.children[1];
161
+ s(u).toHaveClass("results-table__header"), s(i).toHaveClass("results-table__header");
162
+ }), n("should match column count with header count", () => {
163
+ const e = [
164
+ { title: "Col1", resultKey: "col1" },
165
+ { title: "Col2", resultKey: "col2" },
166
+ { title: "Col3", resultKey: "col3" },
167
+ { title: "Col4", resultKey: "col4" },
168
+ { title: "Col5", resultKey: "col5" }
169
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
170
+ s(t.length).toBe(e.length);
171
+ }), n("should render all dynamic classes correctly", () => {
172
+ const e = [
173
+ { title: "First Name", resultKey: "firstName" },
174
+ { title: "Last Name", resultKey: "lastName" }
175
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e }));
176
+ s(l.querySelector(".results-table__first-name")).toBeInTheDocument(), s(l.querySelector(".results-table__last-name")).toBeInTheDocument();
177
+ });
178
+ }), m("Type Safety", () => {
179
+ n("should accept valid column definitions", () => {
180
+ const e = [
181
+ { title: "Name", resultKey: "name" },
182
+ { title: "Age", resultKey: "age" }
183
+ ];
184
+ s(() => {
185
+ r(/* @__PURE__ */ o(a, { columns: e }));
186
+ }).not.toThrow();
187
+ }), n("should accept empty columns array", () => {
188
+ const e = [];
189
+ s(() => {
190
+ r(/* @__PURE__ */ o(a, { columns: e }));
191
+ }).not.toThrow();
192
+ }), n("should accept columns with different title and resultKey", () => {
193
+ const e = [
194
+ { title: "Full Name", resultKey: "name" },
195
+ { title: "Age (years)", resultKey: "age" }
196
+ ];
197
+ s(() => {
198
+ r(/* @__PURE__ */ o(a, { columns: e }));
199
+ }).not.toThrow();
200
+ }), n("should accept columns with special characters in title", () => {
201
+ const e = [
202
+ { title: "Name & Surname", resultKey: "name" },
203
+ { title: "Email (Primary)", resultKey: "email" }
204
+ ];
205
+ s(() => {
206
+ r(/* @__PURE__ */ o(a, { columns: e }));
207
+ }).not.toThrow();
208
+ });
209
+ }), m("Edge Cases", () => {
210
+ n("should handle very long column titles", () => {
211
+ r(/* @__PURE__ */ o(a, { columns: [
212
+ { title: "This is a very long column title that might wrap or overflow in the header", resultKey: "long" }
213
+ ] })), s(c.getByText(/This is a very long column title/)).toBeInTheDocument();
214
+ }), n("should handle empty string column title", () => {
215
+ const e = [
216
+ { title: "", resultKey: "empty" }
217
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
218
+ s(t).toHaveLength(1), s(t[0]).toHaveTextContent("");
219
+ }), n("should handle column title with only spaces", () => {
220
+ const e = [
221
+ { title: " ", resultKey: "spaces" }
222
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
223
+ s(t).toHaveLength(1);
224
+ }), n("should handle special characters in column title", () => {
225
+ r(/* @__PURE__ */ o(a, { columns: [
226
+ { title: "Name & Surname (Required)", resultKey: "name" }
227
+ ] })), s(c.getByText("Name & Surname (Required)")).toBeInTheDocument();
228
+ }), n("should handle many columns", () => {
229
+ const e = Array.from({ length: 20 }, (u, i) => ({
230
+ title: `Column ${i + 1}`,
231
+ resultKey: `col${i + 1}`
232
+ })), { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
233
+ s(t).toHaveLength(20);
234
+ }), n("should handle column titles with numbers", () => {
235
+ r(/* @__PURE__ */ o(a, { columns: [
236
+ { title: "Column 1", resultKey: "col1" },
237
+ { title: "Column 2", resultKey: "col2" }
238
+ ] })), s(c.getByText("Column 1")).toBeInTheDocument(), s(c.getByText("Column 2")).toBeInTheDocument();
239
+ }), n("should handle duplicate column titles", () => {
240
+ const e = [
241
+ { title: "Name", resultKey: "firstName" },
242
+ { title: "Name", resultKey: "lastName" }
243
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelectorAll(".results-table__header");
244
+ s(t).toHaveLength(2);
245
+ const u = c.getAllByText("Name"), i = c.getAllByText("Name 2");
246
+ s(u).toHaveLength(1), s(i).toHaveLength(1);
247
+ }), n("should handle column title with leading/trailing spaces", () => {
248
+ const e = [
249
+ { title: " Name ", resultKey: "name" }
250
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header");
251
+ s(t == null ? void 0 : t.textContent).toBe(" Name ");
252
+ }), n("should handle unicode characters in column title", () => {
253
+ r(/* @__PURE__ */ o(a, { columns: [
254
+ { title: "Nombre 🌟", resultKey: "name" },
255
+ { title: "Âge", resultKey: "age" }
256
+ ] })), s(c.getByText("Nombre 🌟")).toBeInTheDocument(), s(c.getByText("Âge")).toBeInTheDocument();
257
+ }), n("should handle column title with only special characters", () => {
258
+ r(/* @__PURE__ */ o(a, { columns: [
259
+ { title: "@#$%", resultKey: "special" }
260
+ ] })), s(c.getByText("@#$%")).toBeInTheDocument();
261
+ });
262
+ }), m("Array Join Pattern", () => {
263
+ n("should join classes with space separator for header row", () => {
264
+ const e = [
265
+ { title: "Name", resultKey: "name" }
266
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header-row"), u = t == null ? void 0 : t.className.split(" ");
267
+ s(u).toContain("results-table__row"), s(u).toContain("results-table__header-row");
268
+ }), n("should join classes with space separator for header items", () => {
269
+ const e = [
270
+ { title: "Name", resultKey: "name" }
271
+ ], { container: l } = r(/* @__PURE__ */ o(a, { columns: e })), t = l.querySelector(".results-table__header"), u = t == null ? void 0 : t.className.split(" ");
272
+ s(u).toContain("results-table__header"), s(u).toContain("results-table__name");
273
+ });
274
+ });
275
+ });