@salesforcedevs/dx-components 0.26.2 → 0.26.3

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 (250) hide show
  1. package/lwc.config.json +1 -1
  2. package/package.json +2 -6
  3. package/src/modules/{utils-internal → base-elements}/archiveCard/archiveCard.ts +0 -0
  4. package/src/modules/{utils-internal → base-elements}/headerBase/headerBase.ts +0 -0
  5. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.ts +1 -1
  6. package/src/modules/dx/cardCallout/cardCallout.ts +1 -1
  7. package/src/modules/dx/cardContent/cardContent.ts +2 -2
  8. package/src/modules/dx/cardDocs/cardDocs.ts +1 -1
  9. package/src/modules/dx/cardExpanded/cardExpanded.ts +1 -1
  10. package/src/modules/dx/cardMinimal/cardMinimal.ts +1 -1
  11. package/src/modules/dx/cardNews/cardNews.ts +1 -1
  12. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.ts +1 -1
  13. package/src/modules/dx/cardSmall/cardSmall.ts +1 -1
  14. package/src/modules/dx/codeBlock/codeBlock.ts +1 -1
  15. package/src/modules/dx/dropdown/dropdown.ts +1 -1
  16. package/src/modules/dx/featuredContentHeader/featuredContentHeader.ts +1 -1
  17. package/src/modules/dx/groupText/groupText.ts +1 -1
  18. package/src/modules/dx/header/header.ts +1 -1
  19. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +1 -1
  20. package/src/modules/dx/headerSearch/headerSearch.ts +1 -1
  21. package/src/modules/dx/icon/icon.ts +1 -1
  22. package/src/modules/dx/iconBadge/iconBadge.ts +1 -1
  23. package/src/modules/dx/input/input.ts +1 -1
  24. package/src/modules/dx/popover/popover.ts +1 -1
  25. package/src/modules/dx/section/section.ts +1 -1
  26. package/src/modules/dx/sidebar/sidebar.ts +1 -1
  27. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +2 -5
  28. package/src/modules/dx/typeBadge/typeBadge.ts +1 -1
  29. package/src/modules/{utils-internal → utils}/coveo/coveo.ts +0 -0
  30. package/src/modules/{utils-internal → utils}/css/css.ts +0 -0
  31. package/src/modules/{utils-internal → utils}/devices/devices.ts +0 -0
  32. package/src/modules/utils/highlight/highlight.ts +1 -1
  33. package/src/modules/{utils-internal → utils}/options/options.ts +0 -0
  34. package/src/modules/{utils-internal → utils}/prismjs/prismjs.html +0 -0
  35. package/src/modules/{utils-internal → utils}/prismjs/prismjs.ts +0 -0
  36. package/src/modules/{utils-internal → utils}/recentSearches/recentSearches.ts +0 -0
  37. package/src/modules/{utils-internal → utils}/regexps/regexps.ts +0 -0
  38. package/src/modules/{utils-internal → utils}/seo/seo.ts +0 -0
  39. package/src/modules/{utils-internal → utils}/slot/slot.ts +0 -0
  40. package/src/modules/{utils-internal → utils}/wordpress/wordpress.ts +0 -0
  41. package/src/modules/dx/banner/__tests__/banner.test.ts +0 -33
  42. package/src/modules/dx/brandThemeProvider/__tests__/brandThemeProvider.test.ts +0 -49
  43. package/src/modules/dx/brandThemeProvider/brandThemeProvider.stories.ts +0 -321
  44. package/src/modules/dx/breadcrumbs/__tests__/breadcrumbs.test.ts +0 -140
  45. package/src/modules/dx/breadcrumbs/__tests__/mockProps.ts +0 -28
  46. package/src/modules/dx/breadcrumbs/breadcrumbs.stories.ts +0 -39
  47. package/src/modules/dx/button/__tests__/button.test.ts +0 -107
  48. package/src/modules/dx/button/button.stories.ts +0 -150
  49. package/src/modules/dx/cardBlogPost/__tests__/cardBlogPost.test.ts +0 -26
  50. package/src/modules/dx/cardBlogPost/__tests__/mockProps.ts +0 -12
  51. package/src/modules/dx/cardBlogPost/cardBlogPost.stories.ts +0 -164
  52. package/src/modules/dx/cardBlogPostProvider/__tests__/cardBlogPostProvider.test.ts +0 -34
  53. package/src/modules/dx/cardBlogPostProvider/__tests__/mockWordpressPosts.ts +0 -44
  54. package/src/modules/dx/cardCallout/__tests__/cardCallout.test.ts +0 -20
  55. package/src/modules/dx/cardCallout/__tests__/mockProps.ts +0 -7
  56. package/src/modules/dx/cardCallout/cardCallout.stories.ts +0 -33
  57. package/src/modules/dx/cardContent/__tests__/cardContent.test.ts +0 -100
  58. package/src/modules/dx/cardContent/__tests__/mockProps.ts +0 -13
  59. package/src/modules/dx/cardContent/cardContent.stories.ts +0 -127
  60. package/src/modules/dx/cardDemo/cardDemo.stories.ts +0 -115
  61. package/src/modules/dx/cardDocs/__tests__/cardDocs.test.ts +0 -48
  62. package/src/modules/dx/cardDocs/__tests__/mockProps.ts +0 -9
  63. package/src/modules/dx/cardDocs/cardDocs.stories.ts +0 -299
  64. package/src/modules/dx/cardEvent/__tests__/cardEvent.test.ts +0 -95
  65. package/src/modules/dx/cardEvent/__tests__/mockProps.ts +0 -10
  66. package/src/modules/dx/cardEvent/cardEvent.stories.ts +0 -153
  67. package/src/modules/dx/cardExpanded/__tests__/cardExpanded.test.ts +0 -193
  68. package/src/modules/dx/cardExpanded/__tests__/mockProps.ts +0 -21
  69. package/src/modules/dx/cardExpanded/cardExpanded.stories.ts +0 -59
  70. package/src/modules/dx/cardGrid/__tests__/cardMockProps.ts +0 -431
  71. package/src/modules/dx/cardGrid/__tests__/mockProps.ts +0 -15
  72. package/src/modules/dx/cardGrid/cardGrid.stories.ts +0 -111
  73. package/src/modules/dx/cardMinimal/__tests__/cardMinimal.test.ts +0 -87
  74. package/src/modules/dx/cardMinimal/__tests__/mockProps.ts +0 -10
  75. package/src/modules/dx/cardMinimal/cardMinimal.stories.ts +0 -32
  76. package/src/modules/dx/cardNews/__tests__/cardNews.test.ts +0 -58
  77. package/src/modules/dx/cardNews/__tests__/mockProps.ts +0 -7
  78. package/src/modules/dx/cardNews/cardNews.stories.ts +0 -115
  79. package/src/modules/dx/cardPodcastEpisode/__tests__/cardPodcastEpisode.test.ts +0 -68
  80. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.stories.ts +0 -31
  81. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/cardPodcastEpisodeProvider.test.ts +0 -36
  82. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/mockWordpressEpisodes.ts +0 -50
  83. package/src/modules/dx/cardSmall/__tests__/cardSmall.test.ts +0 -66
  84. package/src/modules/dx/cardSmall/__tests__/mockProps.ts +0 -8
  85. package/src/modules/dx/cardSmall/cardSmall.stories.ts +0 -166
  86. package/src/modules/dx/cardTitle/__tests__/cardTitle.test.ts +0 -46
  87. package/src/modules/dx/cardTrailheadModule/__tests__/cardTrailheadModule.test.ts +0 -18
  88. package/src/modules/dx/cardTrailheadModule/__tests__/mockProps.ts +0 -11
  89. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.stories.ts +0 -122
  90. package/src/modules/dx/cardVideoPreview/__tests__/cardVideoPreview.test.ts +0 -22
  91. package/src/modules/dx/cardVideoPreview/__tests__/mockProps.ts +0 -11
  92. package/src/modules/dx/cardVideoPreview/cardVideoPreview.stories.ts +0 -147
  93. package/src/modules/dx/checkbox/__tests__/checkbox.test.ts +0 -85
  94. package/src/modules/dx/checkbox/__tests__/mockProps.ts +0 -5
  95. package/src/modules/dx/checkbox/checkbox.stories.ts +0 -38
  96. package/src/modules/dx/checkboxGroup/__tests__/checkboxGroup.test.ts +0 -80
  97. package/src/modules/dx/checkboxGroup/__tests__/mockProps.ts +0 -14
  98. package/src/modules/dx/checkboxGroup/checkboxGroup.stories.ts +0 -33
  99. package/src/modules/dx/codeBlock/__tests__/codeBlock.test.ts +0 -238
  100. package/src/modules/dx/codeBlock/__tests__/mockProps.ts +0 -160
  101. package/src/modules/dx/codeBlock/codeBlock.stories.ts +0 -143
  102. package/src/modules/dx/dropdown/__tests__/dropdown.test.ts +0 -165
  103. package/src/modules/dx/dropdown/__tests__/mockNestedOptions.ts +0 -96
  104. package/src/modules/dx/dropdown/__tests__/mockOptions.ts +0 -10
  105. package/src/modules/dx/dropdown/__tests__/mockProps.ts +0 -6
  106. package/src/modules/dx/dropdown/dropdown.stories.ts +0 -89
  107. package/src/modules/dx/dropdownOption/__tests__/dropdownOption.test.ts +0 -112
  108. package/src/modules/dx/dropdownOption/__tests__/mockProps.ts +0 -20
  109. package/src/modules/dx/emptyState/__tests__/emptyState.test.ts +0 -52
  110. package/src/modules/dx/emptyState/__tests__/mockProps.ts +0 -4
  111. package/src/modules/dx/emptyState/emptyState.stories.ts +0 -45
  112. package/src/modules/dx/feature/__tests__/feature.test.ts +0 -51
  113. package/src/modules/dx/feature/__tests__/mockProps.ts +0 -8
  114. package/src/modules/dx/featureGrid/__tests__/featureGrid.test.ts +0 -21
  115. package/src/modules/dx/featureGrid/featureGrid.stories.ts +0 -120
  116. package/src/modules/dx/featuredContentHeader/__tests__/featuredContentHeader.test.ts +0 -178
  117. package/src/modules/dx/featuredContentHeader/__tests__/mockProps.ts +0 -73
  118. package/src/modules/dx/featuredContentHeader/featuredContentHeader.stories.ts +0 -153
  119. package/src/modules/dx/featuresList/__tests__/featuresList.test.ts +0 -43
  120. package/src/modules/dx/featuresList/__tests__/mockProps.ts +0 -17
  121. package/src/modules/dx/featuresList/featuresList.stories.ts +0 -30
  122. package/src/modules/dx/footer/__tests__/footer.test.ts +0 -147
  123. package/src/modules/dx/footer/__tests__/mockLocales.ts +0 -7
  124. package/src/modules/dx/footer/footer.stories.ts +0 -88
  125. package/src/modules/dx/footerOption/__tests__/footerOption.test.ts +0 -34
  126. package/src/modules/dx/footerOption/__tests__/mockProps.ts +0 -7
  127. package/src/modules/dx/formattedDateTime/__tests__/formattedDateTime.test.ts +0 -25
  128. package/src/modules/dx/formattedDateTime/__tests__/mockProps.ts +0 -13
  129. package/src/modules/dx/formattedDateTime/formattedDateTime.stories.ts +0 -103
  130. package/src/modules/dx/grid/__tests__/grid.test.ts +0 -32
  131. package/src/modules/dx/grid/grid.stories.ts +0 -134
  132. package/src/modules/dx/groupBio/__tests__/groupBio.test.ts +0 -82
  133. package/src/modules/dx/groupBio/__tests__/mockProps.ts +0 -15
  134. package/src/modules/dx/groupBio/groupBio.stories.ts +0 -66
  135. package/src/modules/dx/groupText/__tests__/groupText.test.ts +0 -69
  136. package/src/modules/dx/groupText/__tests__/mockProps.ts +0 -35
  137. package/src/modules/dx/groupText/groupText.stories.ts +0 -81
  138. package/src/modules/dx/header/__tests__/header.test.ts +0 -236
  139. package/src/modules/dx/header/__tests__/mockNavArchitects.ts +0 -169
  140. package/src/modules/dx/header/__tests__/mockNavDevelopers.ts +0 -419
  141. package/src/modules/dx/header/__tests__/mockNavs.ts +0 -115
  142. package/src/modules/dx/header/__tests__/mockProps.ts +0 -164
  143. package/src/modules/dx/header/header.stories.ts +0 -172
  144. package/src/modules/dx/headerMobileNavMenu/__tests__/headerMobileNavMenu.test.ts +0 -123
  145. package/src/modules/dx/headerMobileNavMenuOption/__tests__/headerMobileNavMenuOption.test.ts +0 -38
  146. package/src/modules/dx/headerNav/__tests__/headerNav.test.ts +0 -49
  147. package/src/modules/dx/headerSearch/__tests__/headerSearch.test.ts +0 -182
  148. package/src/modules/dx/headerSearch/__tests__/mockData.ts +0 -11
  149. package/src/modules/dx/headerSearch/__tests__/mockProps.ts +0 -6
  150. package/src/modules/dx/helmet/__tests__/helmet.test.ts +0 -52
  151. package/src/modules/dx/helmet/helmet.stories.ts +0 -53
  152. package/src/modules/dx/hr/__tests__/hr.test.ts +0 -53
  153. package/src/modules/dx/hr/__tests__/mockProps.ts +0 -16
  154. package/src/modules/dx/hr/hr.stories.ts +0 -50
  155. package/src/modules/dx/icon/__tests__/icon.test.ts +0 -54
  156. package/src/modules/dx/icon/icon.stories.ts +0 -100
  157. package/src/modules/dx/iconBadge/__tests__/iconBadge.test.ts +0 -17
  158. package/src/modules/dx/iconBadge/iconBadge.stories.ts +0 -32
  159. package/src/modules/dx/imageAndLabel/__tests__/imageAndLabel.test.ts +0 -39
  160. package/src/modules/dx/imageAndLabel/__tests__/mockProps.ts +0 -6
  161. package/src/modules/dx/imageAndLabel/imageAndLabel.stories.ts +0 -48
  162. package/src/modules/dx/input/__tests__/input.test.ts +0 -357
  163. package/src/modules/dx/input/input.stories.ts +0 -102
  164. package/src/modules/dx/instrumentation/__tests__/instrumentation.test.ts +0 -86
  165. package/src/modules/dx/interactiveImage/__tests__/interactiveImage.test.ts +0 -83
  166. package/src/modules/dx/interactiveImage/__tests__/mockProps.ts +0 -39
  167. package/src/modules/dx/interactiveImage/interactiveImage.stories.ts +0 -31
  168. package/src/modules/dx/lazy/__tests__/lazy.test.ts +0 -43
  169. package/src/modules/dx/lazy/lazy.stories.ts +0 -132
  170. package/src/modules/dx/pagination/__tests__/pagination.test.ts +0 -121
  171. package/src/modules/dx/pagination/pagination.stories.ts +0 -88
  172. package/src/modules/dx/podcastHost/__tests__/mockProps.ts +0 -8
  173. package/src/modules/dx/podcastHost/__tests__/podcastHost.test.ts +0 -21
  174. package/src/modules/dx/podcastHost/podcastHost.stories.ts +0 -17
  175. package/src/modules/dx/podcastPlayer/__tests__/podcastPlayer.test.ts +0 -20
  176. package/src/modules/dx/podcastPlayer/podcastPlayer.stories.ts +0 -13
  177. package/src/modules/dx/podcastSubscription/__tests__/podcastSubscription.test.ts +0 -16
  178. package/src/modules/dx/podcastSubscription/podcastSubscription.stories.ts +0 -23
  179. package/src/modules/dx/popover/__tests__/mockProps.ts +0 -8
  180. package/src/modules/dx/popover/__tests__/popover.test.ts +0 -313
  181. package/src/modules/dx/popover/popover.stories.ts +0 -82
  182. package/src/modules/dx/radioGroup/__tests__/mockProps.ts +0 -12
  183. package/src/modules/dx/radioGroup/__tests__/radioGroup.test.ts +0 -42
  184. package/src/modules/dx/radioGroup/radioGroup.stories.ts +0 -25
  185. package/src/modules/dx/relativeDateTime/__tests__/mockProps.ts +0 -55
  186. package/src/modules/dx/relativeDateTime/__tests__/relativeDateTime.test.ts +0 -52
  187. package/src/modules/dx/relativeDateTime/relativeDateTime.stories.ts +0 -83
  188. package/src/modules/dx/searchResults/searchResults.stories.ts +0 -36
  189. package/src/modules/dx/section/__tests__/section.test.ts +0 -17
  190. package/src/modules/dx/section/section.stories.ts +0 -381
  191. package/src/modules/dx/sectionSignup/__tests__/sectionSignup.test.ts +0 -66
  192. package/src/modules/dx/sectionSignup/sectionSignup.stories.ts +0 -49
  193. package/src/modules/dx/select/select.stories.ts +0 -59
  194. package/src/modules/dx/sidebar/__tests__/mockProps.ts +0 -181
  195. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEmptyEvent.ts +0 -6
  196. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEvent.ts +0 -527
  197. package/src/modules/dx/sidebar/__tests__/sidebar.test.ts +0 -568
  198. package/src/modules/dx/sidebar/sidebar.stories.ts +0 -188
  199. package/src/modules/dx/sidebarOld/__tests__/mockProps.ts +0 -178
  200. package/src/modules/dx/sidebarOld/__tests__/sidebarOld.test.ts +0 -570
  201. package/src/modules/dx/sidebarOld/sidebarOld.stories.ts +0 -139
  202. package/src/modules/dx/sidebarSearch/__tests__/mockPreloadedState.ts +0 -1686
  203. package/src/modules/dx/sidebarSearch/__tests__/sidebarSearch.test.ts +0 -175
  204. package/src/modules/dx/sidebarSearchResult/__tests__/sidebarSearchResult.test.ts +0 -96
  205. package/src/modules/dx/slackCta/__tests__/slackCta.test.ts +0 -36
  206. package/src/modules/dx/slackCta/slackCta.stories.ts +0 -25
  207. package/src/modules/dx/socials/__tests__/socials.test.ts +0 -114
  208. package/src/modules/dx/socials/socials.stories.ts +0 -24
  209. package/src/modules/dx/spinner/__tests__/spinner.test.ts +0 -37
  210. package/src/modules/dx/spinner/spinner.stories.ts +0 -69
  211. package/src/modules/dx/tab/__tests__/tab.test.ts +0 -129
  212. package/src/modules/dx/tab/tab.stories.ts +0 -57
  213. package/src/modules/dx/toc/__tests__/mockProps.ts +0 -28
  214. package/src/modules/dx/toc/__tests__/toc.test.ts +0 -109
  215. package/src/modules/dx/toc/toc.stories.ts +0 -26
  216. package/src/modules/dx/tooltip/__tests__/tooltip.test.ts +0 -22
  217. package/src/modules/dx/tooltip/tooltip.stories.ts +0 -46
  218. package/src/modules/dx/topics/__tests__/mockProps.ts +0 -3
  219. package/src/modules/dx/topics/__tests__/topics.test.ts +0 -31
  220. package/src/modules/dx/tree/__tests__/mockProps.ts +0 -215
  221. package/src/modules/dx/tree/__tests__/tree.test.ts +0 -346
  222. package/src/modules/dx/tree/__tests__/treeHandler.test.ts +0 -194
  223. package/src/modules/dx/tree/tree.stories.ts +0 -65
  224. package/src/modules/dx/treeItem/__tests__/mockProps.ts +0 -46
  225. package/src/modules/dx/treeItem/__tests__/treeItem.test.ts +0 -377
  226. package/src/modules/dx/treeTile/__tests__/mockProps.ts +0 -16
  227. package/src/modules/dx/treeTile/__tests__/treeTile.test.ts +0 -168
  228. package/src/modules/dx/typeBadge/__tests__/typeBadge.test.ts +0 -77
  229. package/src/modules/dx/typeBadge/typeBadge.stories.ts +0 -114
  230. package/src/modules/dx/typeBadgeGroup/__tests__/mockProps.ts +0 -11
  231. package/src/modules/dx/typeBadgeGroup/__tests__/typeBadgeGroup.test.ts +0 -72
  232. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.stories.ts +0 -19
  233. package/src/modules/test-components/buttonTest/buttonTest.html +0 -3
  234. package/src/modules/test-components/buttonTest/buttonTest.ts +0 -3
  235. package/src/modules/test-components/codeBlockTest/codeBlockTest.js +0 -4
  236. package/src/modules/test-components/featureGridTest/featureGridTest.html +0 -7
  237. package/src/modules/test-components/featureGridTest/featureGridTest.ts +0 -5
  238. package/src/modules/test-components/instrumentationTest/instrumentationTest.html +0 -4
  239. package/src/modules/test-components/instrumentationTest/instrumentationTest.ts +0 -8
  240. package/src/modules/test-components/popoverTest/popoverTest.html +0 -6
  241. package/src/modules/test-components/popoverTest/popoverTest.ts +0 -5
  242. package/src/modules/test-components/slackCtaTest/slackCtaTest.html +0 -3
  243. package/src/modules/test-components/slackCtaTest/slackCtaTest.ts +0 -3
  244. package/src/modules/utils/highlight/__tests__/highlight.test.ts +0 -108
  245. package/src/modules/utils/highlight/__tests__/mockProps.ts +0 -45
  246. package/src/modules/utils-internal/jest/jest.ts +0 -58
  247. package/src/modules/utils-internal/recentSearches/__tests__/recentSearches.test.ts +0 -83
  248. package/src/modules/utils-internal/storybook/storybook.ts +0 -32
  249. package/src/modules/utils-internal/tests/tests.ts +0 -38
  250. package/src/modules/utils-internal/wordpress/__tests__/wordpress.test.ts +0 -15
@@ -1,313 +0,0 @@
1
- import Popover from "dx/popover";
2
- import PopoverTest from "test-components/popoverTest";
3
- import {
4
- createRenderComponent,
5
- mockSlottedElement
6
- } from "utils-internal/tests";
7
- import mockProps from "./mockProps";
8
-
9
- const TAG = "dx-popover";
10
- const render = createRenderComponent(TAG, Popover);
11
-
12
- const renderWithSlot = createRenderComponent("dx-popover-test", PopoverTest);
13
-
14
- describe(TAG, () => {
15
- describe("render", () => {
16
- const originalConsole = global.console;
17
-
18
- beforeAll(() => {
19
- global.console = { ...global.console, error: jest.fn() };
20
- });
21
-
22
- afterAll(() => {
23
- global.console = originalConsole;
24
- });
25
-
26
- it("renders the container div when a targetElement is set", () => {
27
- const component = render();
28
-
29
- expect(console.error).not.toBeCalled();
30
-
31
- const menuEl: HTMLElement =
32
- component.shadowRoot.querySelector(".popover-container");
33
- expect(menuEl).not.toBeNull();
34
- expect(menuEl.classList).toHaveLength(1);
35
-
36
- const popoverDiv: HTMLElement =
37
- menuEl.querySelector("div.popover")!;
38
- expect(popoverDiv).not.toBeNull();
39
- expect(popoverDiv.classList).toHaveLength(1);
40
-
41
- return expect(component).toBeAccessible();
42
- });
43
-
44
- it("renders with api properties", () => {
45
- const component = render(mockProps);
46
- expect(console.error).not.toBeCalled();
47
- const menuEl: HTMLElement =
48
- component.shadowRoot.querySelector(".popover-container");
49
- expect(menuEl).not.toBeNull();
50
- expect(menuEl.classList).toHaveLength(1);
51
-
52
- const popoverDiv: HTMLElement =
53
- menuEl.querySelector("div.popover")!;
54
- expect(popoverDiv).not.toBeNull();
55
- expect(popoverDiv.classList).toHaveLength(4);
56
- expect(popoverDiv.classList).toContain(
57
- `popover-offset-${mockProps.offset}`
58
- );
59
- expect(popoverDiv.classList).toContain("popover-small");
60
- expect(popoverDiv.classList).toContain("popover-overridewidth");
61
- expect(popoverDiv.ariaLabel).toBe(mockProps.ariaLabel);
62
- expect(popoverDiv.style.width).toBe(mockProps.width);
63
-
64
- return expect(component).toBeAccessible();
65
- });
66
-
67
- it("renders with fullwidth class", () => {
68
- const component = render({ fullWidth: true });
69
-
70
- expect(console.error).not.toBeCalled();
71
-
72
- const popoverDiv: HTMLElement =
73
- component.shadowRoot.querySelector("div.popover");
74
- expect(popoverDiv.classList).toHaveLength(2);
75
- expect(popoverDiv.classList).toContain("popover-fullwidth");
76
- });
77
-
78
- it("renders logs an error if fullWidth and width are trithy", () => {
79
- const component = render({ ...mockProps, fullWidth: true });
80
-
81
- expect(console.error).toBeCalledTimes(1);
82
- expect(console.error).toBeCalledWith(
83
- 'The "width" and "full-width" properties cannot be provided simultaneously.'
84
- );
85
-
86
- const popoverDiv: HTMLElement =
87
- component.shadowRoot.querySelector("div.popover");
88
- expect(popoverDiv.style).not.toBeNull();
89
- expect(popoverDiv.classList).toHaveLength(5);
90
- expect(popoverDiv.classList).toContain(
91
- `popover-offset-${mockProps.offset}`
92
- );
93
- expect(popoverDiv.classList).toContain("popover-small");
94
- expect(popoverDiv.classList).toContain("popover-overridewidth");
95
- expect(popoverDiv.classList).toContain("popover-fullwidth");
96
- });
97
-
98
- it("is accessible with its slotted control", async () => {
99
- const component = renderWithSlot();
100
-
101
- return expect(component).toBeAccessible();
102
- });
103
-
104
- it("correctly onboards its slotted control", async () => {
105
- const component = renderWithSlot();
106
-
107
- await Promise.resolve();
108
-
109
- const button = component.shadowRoot.querySelector("dx-button");
110
- const hasPopup = button.getAttribute("aria-haspopup");
111
- expect(hasPopup).toEqual("true");
112
- });
113
-
114
- it("doesn't render menu content before interaction", async () => {
115
- const component = render();
116
- const content =
117
- component.shadowRoot.querySelector(".popover-content");
118
-
119
- expect(content).toBeNull();
120
-
121
- component.openPopover();
122
-
123
- await Promise.resolve();
124
-
125
- const contentAfterOpen =
126
- component.shadowRoot.querySelector(".popover-content");
127
-
128
- expect(contentAfterOpen).not.toBeNull();
129
-
130
- return expect(component).toBeAccessible();
131
- });
132
-
133
- it("render menu content before interaction in prerender mode", async () => {
134
- const spy = jest.spyOn(window.navigator, "userAgent", "get");
135
- spy.mockReturnValue("Mozilla, Prerender");
136
-
137
- const renderComponent = createRenderComponent(TAG, Popover);
138
- const component = renderComponent();
139
- const content =
140
- component.shadowRoot.querySelector(".popover-content");
141
-
142
- expect(content).not.toBeNull();
143
- });
144
- });
145
-
146
- describe("interactions", () => {
147
- it("fires open and close callbacks on interaction with its slotted control", async () => {
148
- const component = renderWithSlot();
149
- const mockOpen = jest.fn();
150
- const mockClose = jest.fn();
151
-
152
- await Promise.resolve();
153
-
154
- const button = component.shadowRoot.querySelector("dx-button");
155
- const popover = component.shadowRoot.querySelector("dx-popover");
156
- popover.addEventListener("open", mockOpen);
157
- popover.addEventListener("close", mockClose);
158
-
159
- expect(mockOpen).not.toHaveBeenCalled();
160
-
161
- button.click();
162
-
163
- expect(mockOpen).toHaveBeenCalledTimes(1);
164
-
165
- button.click();
166
-
167
- expect(mockOpen).toHaveBeenCalledTimes(1);
168
- expect(mockClose).toHaveBeenCalledTimes(1);
169
-
170
- return expect(component).toBeAccessible();
171
- });
172
-
173
- it("doesn't fire open if passed control is disabled", () => {
174
- const element = render();
175
-
176
- const { slot: controlSlot, slottedElement } =
177
- mockSlottedElement<HTMLButtonElement>(
178
- element,
179
- "button",
180
- "control"
181
- );
182
- expect(controlSlot.assignedElements).toBeCalledTimes(1);
183
- expect(slottedElement.ariaHasPopup).toBe("true");
184
- expect(slottedElement.style.cursor).toBe("cursor");
185
-
186
- slottedElement.disabled = true;
187
-
188
- const mockOpen = jest.fn();
189
- element.addEventListener("open", mockOpen);
190
- element.open = true;
191
-
192
- expect(element.open).toBe(false);
193
- expect(mockOpen).not.toBeCalled();
194
- });
195
-
196
- it("fires open on slotted control ArrowDown", async () => {
197
- const component = renderWithSlot();
198
- const mockOpen = jest.fn();
199
-
200
- await Promise.resolve();
201
-
202
- const button = component.shadowRoot.querySelector("dx-button");
203
- const popover = component.shadowRoot.querySelector("dx-popover");
204
- popover.addEventListener("open", mockOpen);
205
-
206
- expect(mockOpen).not.toHaveBeenCalled();
207
-
208
- button.dispatchEvent(
209
- new KeyboardEvent("keydown", { key: "ArrowDown" })
210
- );
211
-
212
- expect(mockOpen).toHaveBeenCalledTimes(1);
213
- });
214
-
215
- it("closes popover and dispatch event when Esc key is pressed", () => {
216
- const component = render(mockProps);
217
- const { slottedElement } = mockSlottedElement(
218
- component,
219
- "button",
220
- "control"
221
- );
222
- slottedElement.focus = jest.fn();
223
-
224
- component.open = true;
225
- expect(slottedElement.getAttribute("aria-expanded")).toBe("true");
226
-
227
- const escapePressMock = jest.fn();
228
- component.addEventListener("requestclose", escapePressMock);
229
-
230
- const closeEvent = jest.fn();
231
- component.addEventListener("close", closeEvent);
232
-
233
- const popoverDiv: HTMLElement =
234
- component.shadowRoot.querySelector(".popover");
235
- expect(popoverDiv).not.toBeNull();
236
-
237
- expect(component.open).toBe(true);
238
-
239
- popoverDiv.dispatchEvent(
240
- new KeyboardEvent("keydown", { key: "Escape" })
241
- );
242
-
243
- expect(escapePressMock).toBeCalledTimes(1);
244
- const [singleCall] = escapePressMock.mock.calls[0];
245
- expect(singleCall).toHaveProperty("detail", "keypress-escape");
246
- expect(singleCall).toHaveProperty("bubbles", true);
247
- expect(singleCall).toHaveProperty("composed", true);
248
-
249
- expect(component.open).toBe(false);
250
- expect(slottedElement.getAttribute("aria-expanded")).toBe("false");
251
- expect(slottedElement.focus).toBeCalledTimes(1);
252
- expect(closeEvent).toBeCalledTimes(1);
253
- });
254
-
255
- it("fires open callbacks on mouseover its slotted control", () => {
256
- const component = render({ ...mockProps, openOnHover: true });
257
- const { slottedElement } = mockSlottedElement(
258
- component,
259
- "button",
260
- "control"
261
- );
262
- expect(slottedElement.ariaHasPopup).toBe("true");
263
- expect(slottedElement.style.cursor).toBe("default");
264
-
265
- const openMock = jest.fn();
266
- component.addEventListener("open", openMock);
267
-
268
- slottedElement.dispatchEvent(new MouseEvent("mouseenter"));
269
- expect(openMock).toBeCalledTimes(1);
270
- expect(component.open).toBe(true);
271
- });
272
-
273
- it("closes if you change open from true to false and not focus control", () => {
274
- const component = render(mockProps);
275
- const { slottedElement } = mockSlottedElement(
276
- component,
277
- "button",
278
- "control"
279
- );
280
- slottedElement.focus = jest.fn();
281
- component.open = true;
282
-
283
- const closeMock = jest.fn();
284
- component.addEventListener("close", closeMock);
285
-
286
- component.open = false;
287
-
288
- expect(slottedElement.focus).not.toBeCalled();
289
- expect(closeMock).toBeCalledTimes(1);
290
- });
291
-
292
- it("dispatches requestclose with click-control type", () => {
293
- const component = render(mockProps);
294
- const { slottedElement } = mockSlottedElement(
295
- component,
296
- "button",
297
- "control"
298
- );
299
-
300
- const requestCloseMock = jest.fn();
301
- component.addEventListener("requestclose", requestCloseMock);
302
-
303
- component.open = true;
304
- slottedElement.click();
305
-
306
- expect(requestCloseMock).toBeCalledTimes(1);
307
- const [singleCall] = requestCloseMock.mock.calls[0];
308
- expect(singleCall).toHaveProperty("detail", "click-control");
309
- expect(singleCall).toHaveProperty("bubbles", true);
310
- expect(singleCall).toHaveProperty("composed", true);
311
- });
312
- });
313
- });
@@ -1,82 +0,0 @@
1
- import { html } from "lit-html";
2
- import mockProps from "../checkboxGroup/__tests__/mockProps";
3
-
4
- export default {
5
- title: "dx/dx-popover",
6
- component: "dx-popover"
7
- };
8
-
9
- // prettier-ignore
10
- const styles = () => html `
11
- <style>
12
- #root {
13
- display: grid;
14
- grid-template-columns: repeat(3, 1fr);
15
- grid-gap: 20px;
16
- justify-items: center;
17
- }
18
- </style>
19
- `;
20
-
21
- // prettier-ignore
22
- export const Base = () => html ` ${styles()}
23
- <dx-popover>
24
- <dx-button slot="control" icon-symbol="chevrondown">
25
- Default
26
- </dx-button>
27
- <dx-checkbox-group
28
- legend='${JSON.stringify(mockProps.legend)}'
29
- options='${JSON.stringify(mockProps.options)}'
30
- default-value='${JSON.stringify(mockProps.defaultValue)}'
31
- slot="content"
32
- ></dx-checkbox-group>
33
- </dx-popover>
34
-
35
- <br />
36
-
37
- <dx-popover small="true">
38
- <dx-button slot="control" icon-symbol="chevrondown">
39
- Small
40
- </dx-button>
41
- <div slot="content">
42
- Custom Content
43
- </div>
44
- </dx-popover>
45
-
46
- <br />
47
-
48
- <dx-popover offset="small">
49
- <dx-button slot="control" icon-symbol="chevrondown">
50
- Offset
51
- </dx-button>
52
- <div slot="content">
53
- Custom Content
54
- </div>
55
- </dx-popover>
56
-
57
- <br />
58
-
59
- <dx-popover open-on-hover="true">
60
- <dx-button slot="control" icon-symbol="chevrondown">
61
- Open On Hover
62
- </dx-button>
63
- <div slot="content">
64
- Custom Content
65
- </div>
66
- </dx-popover>
67
- `;
68
-
69
- export const DisabledControl = () => html`
70
- ${styles()}
71
- <dx-popover>
72
- <dx-button slot="control" icon-symbol="chevrondown" disabled="true">
73
- I'm disabled
74
- </dx-button>
75
- <dx-checkbox-group
76
- legend="${JSON.stringify(mockProps.legend)}"
77
- options="${JSON.stringify(mockProps.options)}"
78
- default-value="${JSON.stringify(mockProps.defaultValue)}"
79
- slot="content"
80
- ></dx-checkbox-group>
81
- </dx-popover>
82
- `;
@@ -1,12 +0,0 @@
1
- export const options = [
2
- { value: "english", label: "English" },
3
- { value: "japanese", label: "Japanese" },
4
- { value: "spanish", label: "Spanish" },
5
- { value: "german", label: "German", disabled: true }
6
- ];
7
-
8
- export default {
9
- defaultValue: "japanese",
10
- legend: "languages",
11
- options
12
- };
@@ -1,42 +0,0 @@
1
- import RadioGroup from "dx/radioGroup";
2
- import { createRenderComponent } from "utils-internal/tests";
3
- import mockProps from "./mockProps";
4
-
5
- const TAG = "dx-radio-group";
6
- const render = createRenderComponent(TAG, RadioGroup);
7
-
8
- describe(TAG, () => {
9
- it("callback payload value is correct", async () => {
10
- const mockChange = jest.fn();
11
-
12
- const element = render(mockProps);
13
-
14
- element.addEventListener("change", mockChange);
15
-
16
- const checkbox = element.shadowRoot.querySelector("dx-checkbox");
17
-
18
- checkbox.dispatchEvent(
19
- new CustomEvent("change", { detail: { value: checkbox.value } })
20
- );
21
-
22
- await Promise.resolve();
23
-
24
- expect(mockChange.mock.calls[0][0].detail.value).toEqual(
25
- checkbox.value
26
- );
27
-
28
- return expect(element).toBeAccessible();
29
- });
30
-
31
- it("accepts a value", () => {
32
- const element = render({
33
- options: mockProps.options,
34
- legend: mockProps.legend,
35
- value: mockProps.defaultValue
36
- });
37
-
38
- expect(element.value).toEqual(mockProps.defaultValue);
39
-
40
- return expect(element).toBeAccessible();
41
- });
42
- });
@@ -1,25 +0,0 @@
1
- import mockProps from "./__tests__/mockProps";
2
-
3
- export default {
4
- title: "dx/dx-radio-group",
5
- component: "dx-radio-group"
6
- };
7
-
8
- export const Base = (args: any) => `
9
- <dx-radio-group legend='${args.legend}' options='${args.options}' default-value='${args.defaultValue}'>
10
- </dx-radio-group>
11
- `;
12
-
13
- export const Controlled = (args: any) => `
14
- <dx-radio-group legend='${args.legend}' options='${args.options}' value='${args.defaultValue}'>
15
- </dx-radio-group>
16
- `;
17
-
18
- const args = {
19
- ...mockProps,
20
- options: JSON.stringify(mockProps.options)
21
- };
22
-
23
- Base.args = args;
24
-
25
- Controlled.args = args;
@@ -1,55 +0,0 @@
1
- const oneHour = new Date(Date.now() - 1000 * 60 * 60).toISOString();
2
- const fourHours = new Date(Date.now() - 4 * 1000 * 60 * 60).toISOString();
3
- const oneDay = new Date(Date.now() - 1000 * 60 * 60 * 24).toISOString();
4
- const fourDays = new Date(Date.now() - 4 * 1000 * 60 * 60 * 24).toISOString();
5
- const oneWeek = new Date(Date.now() - 1000 * 60 * 60 * 24 * 7).toISOString();
6
- const fourWeeks = new Date(
7
- Date.now() - 4 * 1000 * 60 * 60 * 24 * 7
8
- ).toISOString();
9
- const oneMonth = new Date(Date.now() - 1000 * 60 * 60 * 24 * 30).toISOString();
10
- const fourMonths = new Date(
11
- Date.now() - 4 * 1000 * 60 * 60 * 24 * 30
12
- ).toISOString();
13
- const oneYear = new Date(
14
- Date.now() - 1000 * 60 * 60 * 24 * 30 * 12
15
- ).toISOString();
16
- const fourYears = new Date(
17
- Date.now() - 4 * 1000 * 60 * 60 * 24 * 30 * 12
18
- ).toISOString();
19
-
20
- export default {
21
- fourHoursCustomMessage: {
22
- value: fourHours,
23
- messageWhenHoursPast: "hours since"
24
- },
25
- oneHour: {
26
- value: oneHour
27
- },
28
- fourHours: {
29
- value: fourHours
30
- },
31
- oneDay: {
32
- value: oneDay
33
- },
34
- fourDays: {
35
- value: fourDays
36
- },
37
- oneWeek: {
38
- value: oneWeek
39
- },
40
- fourWeeks: {
41
- value: fourWeeks
42
- },
43
- oneMonth: {
44
- value: oneMonth
45
- },
46
- fourMonths: {
47
- value: fourMonths
48
- },
49
- oneYear: {
50
- value: oneYear
51
- },
52
- fourYears: {
53
- value: fourYears
54
- }
55
- };
@@ -1,52 +0,0 @@
1
- /* eslint-disable jest/no-mocks-import */
2
- import RelativeDateTime from "dx/relativeDateTime";
3
- import { createRenderComponent } from "utils-internal/tests";
4
- import mockProps from "./mockProps";
5
-
6
- const TAG = "dx-relative-date-time";
7
- const render = createRenderComponent(TAG, RelativeDateTime);
8
-
9
- describe(TAG, () => {
10
- it("renders component with hours and custom message", () => {
11
- const component = render(mockProps.fourHoursCustomMessage);
12
-
13
- const dateEl = component.shadowRoot.querySelector("time");
14
- expect(dateEl).not.toBeNull();
15
- expect(dateEl.textContent).toEqual("4 hours since");
16
- return expect(component).toBeAccessible();
17
- });
18
-
19
- [
20
- { time: "oneHour", expected: "1 hour ago" },
21
- { time: "fourHours", expected: "4 hours ago" },
22
- { time: "oneDay", expected: "1 day ago" },
23
- { time: "fourDays", expected: "4 days ago" },
24
- { time: "oneWeek", expected: "1 week ago" },
25
- { time: "fourWeeks", expected: "4 weeks ago" },
26
- { time: "oneMonth", expected: "1 month ago" },
27
- { time: "fourMonths", expected: "4 months ago" },
28
- { time: "oneYear", expected: "1 year ago" },
29
- { time: "fourYears", expected: "4 years ago" }
30
- ].forEach((testCase) => {
31
- it(`displays the correct label and title for ${testCase.expected}`, () => {
32
- const component = render(mockProps[testCase.time]);
33
-
34
- const dateEl = component.shadowRoot.querySelector("time");
35
-
36
- expect(dateEl).not.toBeNull();
37
- expect(dateEl.getAttribute("title")).toEqual(
38
- new Date(mockProps[testCase.time].value).toString()
39
- );
40
- expect(dateEl.textContent).toEqual(testCase.expected);
41
- return expect(component).toBeAccessible();
42
- });
43
- });
44
-
45
- it("logs an error if value provided is an error", () => {
46
- console.error = jest.fn();
47
- const component = render({ value: undefined });
48
-
49
- expect(component).not.toBeNull();
50
- expect(console.error).toHaveBeenCalled();
51
- });
52
- });
@@ -1,83 +0,0 @@
1
- import { html } from "lit-html";
2
-
3
- export default {
4
- title: "dx/dx-relative-date-time",
5
- component: "dx-relative-date-time"
6
- };
7
-
8
- // prettier-ignore
9
- const createStyles = () => html `
10
- <style>
11
- span.date-label {
12
- color: grey;
13
- }
14
-
15
- dx-relative-date-time {
16
- display: block;
17
- margin-bottom: 12px;
18
- }
19
- </style>
20
- `;
21
-
22
- const twoWeeks = new Date(Date.now() - 1.21e9).toISOString();
23
- const fourDays = new Date(Date.now() - 3.456e8).toISOString();
24
- const threeMonths = new Date(Date.now() - 7.884e9).toISOString();
25
- const twoYears = new Date(Date.now() - 6.307e10).toISOString();
26
- const fourHours = new Date(Date.now() - 1.44e7).toISOString();
27
- const oneHour = new Date(Date.now() - 3600000).toISOString();
28
-
29
- // prettier-ignore
30
- export const DefaultMessage = () => html ` ${createStyles()}
31
-
32
- <span class="date-label">4 hours</span>
33
- <dx-relative-date-time value="${fourHours}"></dx-relative-date-time>
34
-
35
- <span class="date-label">4 days</span>
36
- <dx-relative-date-time value="${fourDays}"></dx-relative-date-time>
37
-
38
- <span class="date-label">2 weeks</span>
39
- <dx-relative-date-time value="${twoWeeks}"></dx-relative-date-time>
40
-
41
- <span class="date-label">3 Months</span>
42
- <dx-relative-date-time value="${threeMonths}"></dx-relative-date-time>
43
-
44
- <span class="date-label">2 Years</span>
45
- <dx-relative-date-time value="${twoYears}"></dx-relative-date-time>
46
-
47
- <span class="date-label">1 Hour</span>
48
- <dx-relative-date-time value="${oneHour}"></dx-relative-date-time>
49
- `;
50
-
51
- export const CustomMessage = () => html`
52
- ${createStyles()}
53
-
54
- <span class="date-label">4 hours</span>
55
- <dx-relative-date-time
56
- value="${fourHours}"
57
- message-when-hours-past="hours since upload"
58
- ></dx-relative-date-time>
59
-
60
- <span class="date-label">4 days</span>
61
- <dx-relative-date-time
62
- value="${fourDays}"
63
- message-when-days-past="days since broadcast"
64
- ></dx-relative-date-time>
65
-
66
- <span class="date-label">2 weeks</span>
67
- <dx-relative-date-time
68
- value="${twoWeeks}"
69
- message-when-weeks-past="weeks since last broadcast"
70
- ></dx-relative-date-time>
71
-
72
- <span class="date-label">3 Months</span>
73
- <dx-relative-date-time
74
- value="${threeMonths}"
75
- message-when-months-past="months since the event"
76
- ></dx-relative-date-time>
77
-
78
- <span class="date-label">2 Years</span>
79
- <dx-relative-date-time
80
- value="${twoYears}"
81
- message-when-years-past="years ago"
82
- ></dx-relative-date-time>
83
- `;