@salesforcedevs/dx-components 0.26.1-alpha.11 → 0.26.1-alpha.16

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 (240) hide show
  1. package/lwc.config.json +1 -1
  2. package/package.json +1 -8
  3. package/src/modules/{utils → base-elements}/archiveCard/archiveCard.ts +0 -0
  4. package/src/modules/{utils → 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/header/header.ts +1 -1
  18. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +1 -1
  19. package/src/modules/dx/headerSearch/headerSearch.ts +1 -1
  20. package/src/modules/dx/icon/icon.ts +1 -1
  21. package/src/modules/dx/iconBadge/iconBadge.ts +1 -1
  22. package/src/modules/dx/input/input.ts +1 -1
  23. package/src/modules/dx/popover/popover.ts +1 -1
  24. package/src/modules/dx/section/section.ts +1 -1
  25. package/src/modules/dx/sidebar/sidebar.ts +1 -1
  26. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +2 -5
  27. package/src/modules/dx/typeBadge/typeBadge.ts +1 -1
  28. package/src/modules/utils/highlight/highlight.ts +1 -1
  29. package/.DS_Store +0 -0
  30. package/src/.DS_Store +0 -0
  31. package/src/modules/.DS_Store +0 -0
  32. package/src/modules/dx/.DS_Store +0 -0
  33. package/src/modules/dx/banner/__tests__/banner.test.ts +0 -33
  34. package/src/modules/dx/brandThemeProvider/__tests__/brandThemeProvider.test.ts +0 -49
  35. package/src/modules/dx/brandThemeProvider/brandThemeProvider.stories.ts +0 -321
  36. package/src/modules/dx/breadcrumbs/__tests__/breadcrumbs.test.ts +0 -140
  37. package/src/modules/dx/breadcrumbs/__tests__/mockProps.ts +0 -28
  38. package/src/modules/dx/breadcrumbs/breadcrumbs.stories.ts +0 -39
  39. package/src/modules/dx/button/__tests__/button.test.ts +0 -107
  40. package/src/modules/dx/button/button.stories.ts +0 -150
  41. package/src/modules/dx/cardBlogPost/__tests__/cardBlogPost.test.ts +0 -26
  42. package/src/modules/dx/cardBlogPost/__tests__/mockProps.ts +0 -12
  43. package/src/modules/dx/cardBlogPost/cardBlogPost.stories.ts +0 -164
  44. package/src/modules/dx/cardBlogPostProvider/__tests__/cardBlogPostProvider.test.ts +0 -34
  45. package/src/modules/dx/cardBlogPostProvider/__tests__/mockWordpressPosts.ts +0 -44
  46. package/src/modules/dx/cardCallout/__tests__/cardCallout.test.ts +0 -20
  47. package/src/modules/dx/cardCallout/__tests__/mockProps.ts +0 -7
  48. package/src/modules/dx/cardCallout/cardCallout.stories.ts +0 -33
  49. package/src/modules/dx/cardContent/__tests__/cardContent.test.ts +0 -100
  50. package/src/modules/dx/cardContent/__tests__/mockProps.ts +0 -13
  51. package/src/modules/dx/cardContent/cardContent.stories.ts +0 -127
  52. package/src/modules/dx/cardDemo/cardDemo.stories.ts +0 -115
  53. package/src/modules/dx/cardDocs/__tests__/cardDocs.test.ts +0 -48
  54. package/src/modules/dx/cardDocs/__tests__/mockProps.ts +0 -9
  55. package/src/modules/dx/cardDocs/cardDocs.stories.ts +0 -299
  56. package/src/modules/dx/cardEvent/__tests__/cardEvent.test.ts +0 -95
  57. package/src/modules/dx/cardEvent/__tests__/mockProps.ts +0 -10
  58. package/src/modules/dx/cardEvent/cardEvent.stories.ts +0 -153
  59. package/src/modules/dx/cardExpanded/__tests__/cardExpanded.test.ts +0 -193
  60. package/src/modules/dx/cardExpanded/__tests__/mockProps.ts +0 -21
  61. package/src/modules/dx/cardExpanded/cardExpanded.stories.ts +0 -59
  62. package/src/modules/dx/cardGrid/__tests__/cardMockProps.ts +0 -431
  63. package/src/modules/dx/cardGrid/__tests__/mockProps.ts +0 -15
  64. package/src/modules/dx/cardGrid/cardGrid.stories.ts +0 -111
  65. package/src/modules/dx/cardMinimal/__tests__/cardMinimal.test.ts +0 -87
  66. package/src/modules/dx/cardMinimal/__tests__/mockProps.ts +0 -10
  67. package/src/modules/dx/cardMinimal/cardMinimal.stories.ts +0 -32
  68. package/src/modules/dx/cardNews/__tests__/cardNews.test.ts +0 -58
  69. package/src/modules/dx/cardNews/__tests__/mockProps.ts +0 -7
  70. package/src/modules/dx/cardNews/cardNews.stories.ts +0 -115
  71. package/src/modules/dx/cardPodcastEpisode/__tests__/cardPodcastEpisode.test.ts +0 -68
  72. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.stories.ts +0 -31
  73. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/cardPodcastEpisodeProvider.test.ts +0 -36
  74. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/mockWordpressEpisodes.ts +0 -50
  75. package/src/modules/dx/cardSmall/__tests__/cardSmall.test.ts +0 -66
  76. package/src/modules/dx/cardSmall/__tests__/mockProps.ts +0 -8
  77. package/src/modules/dx/cardSmall/cardSmall.stories.ts +0 -166
  78. package/src/modules/dx/cardTitle/__tests__/cardTitle.test.ts +0 -46
  79. package/src/modules/dx/cardTrailheadModule/__tests__/cardTrailheadModule.test.ts +0 -18
  80. package/src/modules/dx/cardTrailheadModule/__tests__/mockProps.ts +0 -11
  81. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.stories.ts +0 -122
  82. package/src/modules/dx/cardVideoPreview/__tests__/cardVideoPreview.test.ts +0 -22
  83. package/src/modules/dx/cardVideoPreview/__tests__/mockProps.ts +0 -11
  84. package/src/modules/dx/cardVideoPreview/cardVideoPreview.stories.ts +0 -147
  85. package/src/modules/dx/checkbox/__tests__/checkbox.test.ts +0 -85
  86. package/src/modules/dx/checkbox/__tests__/mockProps.ts +0 -5
  87. package/src/modules/dx/checkbox/checkbox.stories.ts +0 -38
  88. package/src/modules/dx/checkboxGroup/__tests__/checkboxGroup.test.ts +0 -80
  89. package/src/modules/dx/checkboxGroup/__tests__/mockProps.ts +0 -14
  90. package/src/modules/dx/checkboxGroup/checkboxGroup.stories.ts +0 -33
  91. package/src/modules/dx/codeBlock/__tests__/codeBlock.test.ts +0 -238
  92. package/src/modules/dx/codeBlock/__tests__/mockProps.ts +0 -160
  93. package/src/modules/dx/codeBlock/codeBlock.stories.ts +0 -143
  94. package/src/modules/dx/dropdown/__tests__/dropdown.test.ts +0 -165
  95. package/src/modules/dx/dropdown/__tests__/mockNestedOptions.ts +0 -96
  96. package/src/modules/dx/dropdown/__tests__/mockOptions.ts +0 -10
  97. package/src/modules/dx/dropdown/__tests__/mockProps.ts +0 -6
  98. package/src/modules/dx/dropdown/dropdown.stories.ts +0 -89
  99. package/src/modules/dx/dropdownOption/__tests__/dropdownOption.test.ts +0 -112
  100. package/src/modules/dx/dropdownOption/__tests__/mockProps.ts +0 -20
  101. package/src/modules/dx/emptyState/__tests__/emptyState.test.ts +0 -52
  102. package/src/modules/dx/emptyState/__tests__/mockProps.ts +0 -4
  103. package/src/modules/dx/emptyState/emptyState.stories.ts +0 -45
  104. package/src/modules/dx/feature/__tests__/feature.test.ts +0 -51
  105. package/src/modules/dx/feature/__tests__/mockProps.ts +0 -8
  106. package/src/modules/dx/featureGrid/__tests__/featureGrid.test.ts +0 -21
  107. package/src/modules/dx/featureGrid/featureGrid.stories.ts +0 -120
  108. package/src/modules/dx/featuredContentHeader/__tests__/featuredContentHeader.test.ts +0 -178
  109. package/src/modules/dx/featuredContentHeader/__tests__/mockProps.ts +0 -73
  110. package/src/modules/dx/featuredContentHeader/featuredContentHeader.stories.ts +0 -153
  111. package/src/modules/dx/featuresList/__tests__/featuresList.test.ts +0 -43
  112. package/src/modules/dx/featuresList/__tests__/mockProps.ts +0 -17
  113. package/src/modules/dx/featuresList/featuresList.stories.ts +0 -30
  114. package/src/modules/dx/footer/__tests__/footer.test.ts +0 -147
  115. package/src/modules/dx/footer/__tests__/mockLocales.ts +0 -7
  116. package/src/modules/dx/footer/footer.stories.ts +0 -88
  117. package/src/modules/dx/footerOption/__tests__/footerOption.test.ts +0 -34
  118. package/src/modules/dx/footerOption/__tests__/mockProps.ts +0 -7
  119. package/src/modules/dx/formattedDateTime/__tests__/formattedDateTime.test.ts +0 -25
  120. package/src/modules/dx/formattedDateTime/__tests__/mockProps.ts +0 -13
  121. package/src/modules/dx/formattedDateTime/formattedDateTime.stories.ts +0 -103
  122. package/src/modules/dx/grid/__tests__/grid.test.ts +0 -32
  123. package/src/modules/dx/grid/grid.stories.ts +0 -134
  124. package/src/modules/dx/groupBio/__tests__/groupBio.test.ts +0 -82
  125. package/src/modules/dx/groupBio/__tests__/mockProps.ts +0 -15
  126. package/src/modules/dx/groupBio/groupBio.stories.ts +0 -66
  127. package/src/modules/dx/groupText/__tests__/groupText.test.ts +0 -69
  128. package/src/modules/dx/groupText/__tests__/mockProps.ts +0 -35
  129. package/src/modules/dx/groupText/groupText.stories.ts +0 -81
  130. package/src/modules/dx/header/__tests__/header.test.ts +0 -236
  131. package/src/modules/dx/header/__tests__/mockNavArchitects.ts +0 -169
  132. package/src/modules/dx/header/__tests__/mockNavDevelopers.ts +0 -419
  133. package/src/modules/dx/header/__tests__/mockNavs.ts +0 -115
  134. package/src/modules/dx/header/__tests__/mockProps.ts +0 -164
  135. package/src/modules/dx/header/header.stories.ts +0 -172
  136. package/src/modules/dx/headerMobileNavMenu/__tests__/headerMobileNavMenu.test.ts +0 -123
  137. package/src/modules/dx/headerMobileNavMenuOption/__tests__/headerMobileNavMenuOption.test.ts +0 -38
  138. package/src/modules/dx/headerNav/__tests__/headerNav.test.ts +0 -49
  139. package/src/modules/dx/headerSearch/__tests__/headerSearch.test.ts +0 -182
  140. package/src/modules/dx/headerSearch/__tests__/mockData.ts +0 -11
  141. package/src/modules/dx/headerSearch/__tests__/mockProps.ts +0 -6
  142. package/src/modules/dx/helmet/__tests__/helmet.test.ts +0 -52
  143. package/src/modules/dx/helmet/helmet.stories.ts +0 -53
  144. package/src/modules/dx/hr/__tests__/hr.test.ts +0 -53
  145. package/src/modules/dx/hr/__tests__/mockProps.ts +0 -16
  146. package/src/modules/dx/hr/hr.stories.ts +0 -50
  147. package/src/modules/dx/icon/__tests__/icon.test.ts +0 -54
  148. package/src/modules/dx/icon/icon.stories.ts +0 -100
  149. package/src/modules/dx/iconBadge/__tests__/iconBadge.test.ts +0 -17
  150. package/src/modules/dx/iconBadge/iconBadge.stories.ts +0 -32
  151. package/src/modules/dx/imageAndLabel/__tests__/imageAndLabel.test.ts +0 -39
  152. package/src/modules/dx/imageAndLabel/__tests__/mockProps.ts +0 -6
  153. package/src/modules/dx/imageAndLabel/imageAndLabel.stories.ts +0 -48
  154. package/src/modules/dx/input/__tests__/input.test.ts +0 -357
  155. package/src/modules/dx/input/input.stories.ts +0 -102
  156. package/src/modules/dx/instrumentation/__tests__/instrumentation.test.ts +0 -86
  157. package/src/modules/dx/interactiveImage/__tests__/interactiveImage.test.ts +0 -83
  158. package/src/modules/dx/interactiveImage/__tests__/mockProps.ts +0 -39
  159. package/src/modules/dx/interactiveImage/interactiveImage.stories.ts +0 -31
  160. package/src/modules/dx/lazy/__tests__/lazy.test.ts +0 -43
  161. package/src/modules/dx/lazy/lazy.stories.ts +0 -132
  162. package/src/modules/dx/pagination/__tests__/pagination.test.ts +0 -121
  163. package/src/modules/dx/pagination/pagination.stories.ts +0 -88
  164. package/src/modules/dx/podcastHost/__tests__/mockProps.ts +0 -8
  165. package/src/modules/dx/podcastHost/__tests__/podcastHost.test.ts +0 -21
  166. package/src/modules/dx/podcastHost/podcastHost.stories.ts +0 -17
  167. package/src/modules/dx/podcastPlayer/__tests__/podcastPlayer.test.ts +0 -20
  168. package/src/modules/dx/podcastPlayer/podcastPlayer.stories.ts +0 -13
  169. package/src/modules/dx/podcastSubscription/__tests__/podcastSubscription.test.ts +0 -16
  170. package/src/modules/dx/podcastSubscription/podcastSubscription.stories.ts +0 -23
  171. package/src/modules/dx/popover/__tests__/mockProps.ts +0 -8
  172. package/src/modules/dx/popover/__tests__/popover.test.ts +0 -313
  173. package/src/modules/dx/popover/popover.stories.ts +0 -82
  174. package/src/modules/dx/radioGroup/__tests__/mockProps.ts +0 -12
  175. package/src/modules/dx/radioGroup/__tests__/radioGroup.test.ts +0 -42
  176. package/src/modules/dx/radioGroup/radioGroup.stories.ts +0 -25
  177. package/src/modules/dx/relativeDateTime/__tests__/mockProps.ts +0 -55
  178. package/src/modules/dx/relativeDateTime/__tests__/relativeDateTime.test.ts +0 -52
  179. package/src/modules/dx/relativeDateTime/relativeDateTime.stories.ts +0 -83
  180. package/src/modules/dx/searchResults/searchResults.stories.ts +0 -36
  181. package/src/modules/dx/section/__tests__/section.test.ts +0 -17
  182. package/src/modules/dx/section/section.stories.ts +0 -381
  183. package/src/modules/dx/sectionSignup/__tests__/sectionSignup.test.ts +0 -66
  184. package/src/modules/dx/sectionSignup/sectionSignup.stories.ts +0 -49
  185. package/src/modules/dx/select/select.stories.ts +0 -59
  186. package/src/modules/dx/sidebar/__tests__/mockProps.ts +0 -181
  187. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEmptyEvent.ts +0 -6
  188. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEvent.ts +0 -527
  189. package/src/modules/dx/sidebar/__tests__/sidebar.test.ts +0 -568
  190. package/src/modules/dx/sidebar/sidebar.stories.ts +0 -188
  191. package/src/modules/dx/sidebarOld/__tests__/mockProps.ts +0 -178
  192. package/src/modules/dx/sidebarOld/__tests__/sidebarOld.test.ts +0 -570
  193. package/src/modules/dx/sidebarOld/sidebarOld.stories.ts +0 -139
  194. package/src/modules/dx/sidebarSearch/__tests__/mockPreloadedState.ts +0 -1686
  195. package/src/modules/dx/sidebarSearch/__tests__/sidebarSearch.test.ts +0 -175
  196. package/src/modules/dx/sidebarSearchResult/__tests__/sidebarSearchResult.test.ts +0 -96
  197. package/src/modules/dx/slackCta/__tests__/slackCta.test.ts +0 -48
  198. package/src/modules/dx/slackCta/slackCta.stories.ts +0 -25
  199. package/src/modules/dx/socials/__tests__/socials.test.ts +0 -114
  200. package/src/modules/dx/socials/socials.stories.ts +0 -24
  201. package/src/modules/dx/spinner/__tests__/spinner.test.ts +0 -37
  202. package/src/modules/dx/spinner/spinner.stories.ts +0 -69
  203. package/src/modules/dx/tab/__tests__/tab.test.ts +0 -129
  204. package/src/modules/dx/tab/tab.stories.ts +0 -57
  205. package/src/modules/dx/toc/__tests__/mockProps.ts +0 -28
  206. package/src/modules/dx/toc/__tests__/toc.test.ts +0 -109
  207. package/src/modules/dx/toc/toc.stories.ts +0 -26
  208. package/src/modules/dx/tooltip/__tests__/tooltip.test.ts +0 -22
  209. package/src/modules/dx/tooltip/tooltip.stories.ts +0 -46
  210. package/src/modules/dx/topics/__tests__/mockProps.ts +0 -3
  211. package/src/modules/dx/topics/__tests__/topics.test.ts +0 -31
  212. package/src/modules/dx/tree/__tests__/mockProps.ts +0 -215
  213. package/src/modules/dx/tree/__tests__/tree.test.ts +0 -346
  214. package/src/modules/dx/tree/__tests__/treeHandler.test.ts +0 -194
  215. package/src/modules/dx/tree/tree.stories.ts +0 -65
  216. package/src/modules/dx/treeItem/__tests__/mockProps.ts +0 -46
  217. package/src/modules/dx/treeItem/__tests__/treeItem.test.ts +0 -377
  218. package/src/modules/dx/treeTile/__tests__/mockProps.ts +0 -16
  219. package/src/modules/dx/treeTile/__tests__/treeTile.test.ts +0 -168
  220. package/src/modules/dx/typeBadge/__tests__/typeBadge.test.ts +0 -77
  221. package/src/modules/dx/typeBadge/typeBadge.stories.ts +0 -114
  222. package/src/modules/dx/typeBadgeGroup/__tests__/mockProps.ts +0 -11
  223. package/src/modules/dx/typeBadgeGroup/__tests__/typeBadgeGroup.test.ts +0 -72
  224. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.stories.ts +0 -19
  225. package/src/modules/test-components/buttonTest/buttonTest.html +0 -3
  226. package/src/modules/test-components/buttonTest/buttonTest.ts +0 -3
  227. package/src/modules/test-components/codeBlockTest/codeBlockTest.js +0 -4
  228. package/src/modules/test-components/featureGridTest/featureGridTest.html +0 -7
  229. package/src/modules/test-components/featureGridTest/featureGridTest.ts +0 -5
  230. package/src/modules/test-components/instrumentationTest/instrumentationTest.html +0 -4
  231. package/src/modules/test-components/instrumentationTest/instrumentationTest.ts +0 -8
  232. package/src/modules/test-components/popoverTest/popoverTest.html +0 -6
  233. package/src/modules/test-components/popoverTest/popoverTest.ts +0 -5
  234. package/src/modules/utils/highlight/__tests__/highlight.test.ts +0 -108
  235. package/src/modules/utils/highlight/__tests__/mockProps.ts +0 -45
  236. package/src/modules/utils/recentSearches/__tests__/recentSearches.test.ts +0 -83
  237. package/src/modules/utils/wordpress/__tests__/wordpress.test.ts +0 -15
  238. package/src/modules/utils-internal/jest/jest.ts +0 -58
  239. package/src/modules/utils-internal/storybook/storybook.ts +0 -32
  240. package/src/modules/utils-internal/tests/tests.ts +0 -38
@@ -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
- `;