@salesforcedevs/dx-components 0.26.2 → 0.28.0

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 (255) hide show
  1. package/lwc.config.json +2 -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/modalDrawer/modalDrawer.css +40 -0
  25. package/src/modules/dx/modalDrawer/modalDrawer.html +11 -0
  26. package/src/modules/dx/modalDrawer/modalDrawer.ts +27 -0
  27. package/src/modules/dx/popover/popover.ts +1 -1
  28. package/src/modules/dx/section/section.ts +1 -1
  29. package/src/modules/dx/sidebar/sidebar.ts +1 -1
  30. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +2 -5
  31. package/src/modules/dx/slackCta/slackCta.css +1 -1
  32. package/src/modules/dx/tooltip/tooltip.css +1 -0
  33. package/src/modules/dx/typeBadge/typeBadge.ts +1 -1
  34. package/src/modules/{utils-internal → utils}/coveo/coveo.ts +0 -0
  35. package/src/modules/{utils-internal → utils}/css/css.ts +0 -0
  36. package/src/modules/{utils-internal → utils}/devices/devices.ts +0 -0
  37. package/src/modules/utils/highlight/highlight.ts +1 -1
  38. package/src/modules/{utils-internal → utils}/options/options.ts +0 -0
  39. package/src/modules/{utils-internal → utils}/prismjs/prismjs.html +0 -0
  40. package/src/modules/{utils-internal → utils}/prismjs/prismjs.ts +0 -0
  41. package/src/modules/{utils-internal → utils}/recentSearches/recentSearches.ts +0 -0
  42. package/src/modules/{utils-internal → utils}/regexps/regexps.ts +0 -0
  43. package/src/modules/{utils-internal → utils}/seo/seo.ts +0 -0
  44. package/src/modules/{utils-internal → utils}/slot/slot.ts +0 -0
  45. package/src/modules/{utils-internal → utils}/wordpress/wordpress.ts +0 -0
  46. package/src/modules/dx/banner/__tests__/banner.test.ts +0 -33
  47. package/src/modules/dx/brandThemeProvider/__tests__/brandThemeProvider.test.ts +0 -49
  48. package/src/modules/dx/brandThemeProvider/brandThemeProvider.stories.ts +0 -321
  49. package/src/modules/dx/breadcrumbs/__tests__/breadcrumbs.test.ts +0 -140
  50. package/src/modules/dx/breadcrumbs/__tests__/mockProps.ts +0 -28
  51. package/src/modules/dx/breadcrumbs/breadcrumbs.stories.ts +0 -39
  52. package/src/modules/dx/button/__tests__/button.test.ts +0 -107
  53. package/src/modules/dx/button/button.stories.ts +0 -150
  54. package/src/modules/dx/cardBlogPost/__tests__/cardBlogPost.test.ts +0 -26
  55. package/src/modules/dx/cardBlogPost/__tests__/mockProps.ts +0 -12
  56. package/src/modules/dx/cardBlogPost/cardBlogPost.stories.ts +0 -164
  57. package/src/modules/dx/cardBlogPostProvider/__tests__/cardBlogPostProvider.test.ts +0 -34
  58. package/src/modules/dx/cardBlogPostProvider/__tests__/mockWordpressPosts.ts +0 -44
  59. package/src/modules/dx/cardCallout/__tests__/cardCallout.test.ts +0 -20
  60. package/src/modules/dx/cardCallout/__tests__/mockProps.ts +0 -7
  61. package/src/modules/dx/cardCallout/cardCallout.stories.ts +0 -33
  62. package/src/modules/dx/cardContent/__tests__/cardContent.test.ts +0 -100
  63. package/src/modules/dx/cardContent/__tests__/mockProps.ts +0 -13
  64. package/src/modules/dx/cardContent/cardContent.stories.ts +0 -127
  65. package/src/modules/dx/cardDemo/cardDemo.stories.ts +0 -115
  66. package/src/modules/dx/cardDocs/__tests__/cardDocs.test.ts +0 -48
  67. package/src/modules/dx/cardDocs/__tests__/mockProps.ts +0 -9
  68. package/src/modules/dx/cardDocs/cardDocs.stories.ts +0 -299
  69. package/src/modules/dx/cardEvent/__tests__/cardEvent.test.ts +0 -95
  70. package/src/modules/dx/cardEvent/__tests__/mockProps.ts +0 -10
  71. package/src/modules/dx/cardEvent/cardEvent.stories.ts +0 -153
  72. package/src/modules/dx/cardExpanded/__tests__/cardExpanded.test.ts +0 -193
  73. package/src/modules/dx/cardExpanded/__tests__/mockProps.ts +0 -21
  74. package/src/modules/dx/cardExpanded/cardExpanded.stories.ts +0 -59
  75. package/src/modules/dx/cardGrid/__tests__/cardMockProps.ts +0 -431
  76. package/src/modules/dx/cardGrid/__tests__/mockProps.ts +0 -15
  77. package/src/modules/dx/cardGrid/cardGrid.stories.ts +0 -111
  78. package/src/modules/dx/cardMinimal/__tests__/cardMinimal.test.ts +0 -87
  79. package/src/modules/dx/cardMinimal/__tests__/mockProps.ts +0 -10
  80. package/src/modules/dx/cardMinimal/cardMinimal.stories.ts +0 -32
  81. package/src/modules/dx/cardNews/__tests__/cardNews.test.ts +0 -58
  82. package/src/modules/dx/cardNews/__tests__/mockProps.ts +0 -7
  83. package/src/modules/dx/cardNews/cardNews.stories.ts +0 -115
  84. package/src/modules/dx/cardPodcastEpisode/__tests__/cardPodcastEpisode.test.ts +0 -68
  85. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.stories.ts +0 -31
  86. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/cardPodcastEpisodeProvider.test.ts +0 -36
  87. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/mockWordpressEpisodes.ts +0 -50
  88. package/src/modules/dx/cardSmall/__tests__/cardSmall.test.ts +0 -66
  89. package/src/modules/dx/cardSmall/__tests__/mockProps.ts +0 -8
  90. package/src/modules/dx/cardSmall/cardSmall.stories.ts +0 -166
  91. package/src/modules/dx/cardTitle/__tests__/cardTitle.test.ts +0 -46
  92. package/src/modules/dx/cardTrailheadModule/__tests__/cardTrailheadModule.test.ts +0 -18
  93. package/src/modules/dx/cardTrailheadModule/__tests__/mockProps.ts +0 -11
  94. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.stories.ts +0 -122
  95. package/src/modules/dx/cardVideoPreview/__tests__/cardVideoPreview.test.ts +0 -22
  96. package/src/modules/dx/cardVideoPreview/__tests__/mockProps.ts +0 -11
  97. package/src/modules/dx/cardVideoPreview/cardVideoPreview.stories.ts +0 -147
  98. package/src/modules/dx/checkbox/__tests__/checkbox.test.ts +0 -85
  99. package/src/modules/dx/checkbox/__tests__/mockProps.ts +0 -5
  100. package/src/modules/dx/checkbox/checkbox.stories.ts +0 -38
  101. package/src/modules/dx/checkboxGroup/__tests__/checkboxGroup.test.ts +0 -80
  102. package/src/modules/dx/checkboxGroup/__tests__/mockProps.ts +0 -14
  103. package/src/modules/dx/checkboxGroup/checkboxGroup.stories.ts +0 -33
  104. package/src/modules/dx/codeBlock/__tests__/codeBlock.test.ts +0 -238
  105. package/src/modules/dx/codeBlock/__tests__/mockProps.ts +0 -160
  106. package/src/modules/dx/codeBlock/codeBlock.stories.ts +0 -143
  107. package/src/modules/dx/dropdown/__tests__/dropdown.test.ts +0 -165
  108. package/src/modules/dx/dropdown/__tests__/mockNestedOptions.ts +0 -96
  109. package/src/modules/dx/dropdown/__tests__/mockOptions.ts +0 -10
  110. package/src/modules/dx/dropdown/__tests__/mockProps.ts +0 -6
  111. package/src/modules/dx/dropdown/dropdown.stories.ts +0 -89
  112. package/src/modules/dx/dropdownOption/__tests__/dropdownOption.test.ts +0 -112
  113. package/src/modules/dx/dropdownOption/__tests__/mockProps.ts +0 -20
  114. package/src/modules/dx/emptyState/__tests__/emptyState.test.ts +0 -52
  115. package/src/modules/dx/emptyState/__tests__/mockProps.ts +0 -4
  116. package/src/modules/dx/emptyState/emptyState.stories.ts +0 -45
  117. package/src/modules/dx/feature/__tests__/feature.test.ts +0 -51
  118. package/src/modules/dx/feature/__tests__/mockProps.ts +0 -8
  119. package/src/modules/dx/featureGrid/__tests__/featureGrid.test.ts +0 -21
  120. package/src/modules/dx/featureGrid/featureGrid.stories.ts +0 -120
  121. package/src/modules/dx/featuredContentHeader/__tests__/featuredContentHeader.test.ts +0 -178
  122. package/src/modules/dx/featuredContentHeader/__tests__/mockProps.ts +0 -73
  123. package/src/modules/dx/featuredContentHeader/featuredContentHeader.stories.ts +0 -153
  124. package/src/modules/dx/featuresList/__tests__/featuresList.test.ts +0 -43
  125. package/src/modules/dx/featuresList/__tests__/mockProps.ts +0 -17
  126. package/src/modules/dx/featuresList/featuresList.stories.ts +0 -30
  127. package/src/modules/dx/footer/__tests__/footer.test.ts +0 -147
  128. package/src/modules/dx/footer/__tests__/mockLocales.ts +0 -7
  129. package/src/modules/dx/footer/footer.stories.ts +0 -88
  130. package/src/modules/dx/footerOption/__tests__/footerOption.test.ts +0 -34
  131. package/src/modules/dx/footerOption/__tests__/mockProps.ts +0 -7
  132. package/src/modules/dx/formattedDateTime/__tests__/formattedDateTime.test.ts +0 -25
  133. package/src/modules/dx/formattedDateTime/__tests__/mockProps.ts +0 -13
  134. package/src/modules/dx/formattedDateTime/formattedDateTime.stories.ts +0 -103
  135. package/src/modules/dx/grid/__tests__/grid.test.ts +0 -32
  136. package/src/modules/dx/grid/grid.stories.ts +0 -134
  137. package/src/modules/dx/groupBio/__tests__/groupBio.test.ts +0 -82
  138. package/src/modules/dx/groupBio/__tests__/mockProps.ts +0 -15
  139. package/src/modules/dx/groupBio/groupBio.stories.ts +0 -66
  140. package/src/modules/dx/groupText/__tests__/groupText.test.ts +0 -69
  141. package/src/modules/dx/groupText/__tests__/mockProps.ts +0 -35
  142. package/src/modules/dx/groupText/groupText.stories.ts +0 -81
  143. package/src/modules/dx/header/__tests__/header.test.ts +0 -236
  144. package/src/modules/dx/header/__tests__/mockNavArchitects.ts +0 -169
  145. package/src/modules/dx/header/__tests__/mockNavDevelopers.ts +0 -419
  146. package/src/modules/dx/header/__tests__/mockNavs.ts +0 -115
  147. package/src/modules/dx/header/__tests__/mockProps.ts +0 -164
  148. package/src/modules/dx/header/header.stories.ts +0 -172
  149. package/src/modules/dx/headerMobileNavMenu/__tests__/headerMobileNavMenu.test.ts +0 -123
  150. package/src/modules/dx/headerMobileNavMenuOption/__tests__/headerMobileNavMenuOption.test.ts +0 -38
  151. package/src/modules/dx/headerNav/__tests__/headerNav.test.ts +0 -49
  152. package/src/modules/dx/headerSearch/__tests__/headerSearch.test.ts +0 -182
  153. package/src/modules/dx/headerSearch/__tests__/mockData.ts +0 -11
  154. package/src/modules/dx/headerSearch/__tests__/mockProps.ts +0 -6
  155. package/src/modules/dx/helmet/__tests__/helmet.test.ts +0 -52
  156. package/src/modules/dx/helmet/helmet.stories.ts +0 -53
  157. package/src/modules/dx/hr/__tests__/hr.test.ts +0 -53
  158. package/src/modules/dx/hr/__tests__/mockProps.ts +0 -16
  159. package/src/modules/dx/hr/hr.stories.ts +0 -50
  160. package/src/modules/dx/icon/__tests__/icon.test.ts +0 -54
  161. package/src/modules/dx/icon/icon.stories.ts +0 -100
  162. package/src/modules/dx/iconBadge/__tests__/iconBadge.test.ts +0 -17
  163. package/src/modules/dx/iconBadge/iconBadge.stories.ts +0 -32
  164. package/src/modules/dx/imageAndLabel/__tests__/imageAndLabel.test.ts +0 -39
  165. package/src/modules/dx/imageAndLabel/__tests__/mockProps.ts +0 -6
  166. package/src/modules/dx/imageAndLabel/imageAndLabel.stories.ts +0 -48
  167. package/src/modules/dx/input/__tests__/input.test.ts +0 -357
  168. package/src/modules/dx/input/input.stories.ts +0 -102
  169. package/src/modules/dx/instrumentation/__tests__/instrumentation.test.ts +0 -86
  170. package/src/modules/dx/interactiveImage/__tests__/interactiveImage.test.ts +0 -83
  171. package/src/modules/dx/interactiveImage/__tests__/mockProps.ts +0 -39
  172. package/src/modules/dx/interactiveImage/interactiveImage.stories.ts +0 -31
  173. package/src/modules/dx/lazy/__tests__/lazy.test.ts +0 -43
  174. package/src/modules/dx/lazy/lazy.stories.ts +0 -132
  175. package/src/modules/dx/pagination/__tests__/pagination.test.ts +0 -121
  176. package/src/modules/dx/pagination/pagination.stories.ts +0 -88
  177. package/src/modules/dx/podcastHost/__tests__/mockProps.ts +0 -8
  178. package/src/modules/dx/podcastHost/__tests__/podcastHost.test.ts +0 -21
  179. package/src/modules/dx/podcastHost/podcastHost.stories.ts +0 -17
  180. package/src/modules/dx/podcastPlayer/__tests__/podcastPlayer.test.ts +0 -20
  181. package/src/modules/dx/podcastPlayer/podcastPlayer.stories.ts +0 -13
  182. package/src/modules/dx/podcastSubscription/__tests__/podcastSubscription.test.ts +0 -16
  183. package/src/modules/dx/podcastSubscription/podcastSubscription.stories.ts +0 -23
  184. package/src/modules/dx/popover/__tests__/mockProps.ts +0 -8
  185. package/src/modules/dx/popover/__tests__/popover.test.ts +0 -313
  186. package/src/modules/dx/popover/popover.stories.ts +0 -82
  187. package/src/modules/dx/radioGroup/__tests__/mockProps.ts +0 -12
  188. package/src/modules/dx/radioGroup/__tests__/radioGroup.test.ts +0 -42
  189. package/src/modules/dx/radioGroup/radioGroup.stories.ts +0 -25
  190. package/src/modules/dx/relativeDateTime/__tests__/mockProps.ts +0 -55
  191. package/src/modules/dx/relativeDateTime/__tests__/relativeDateTime.test.ts +0 -52
  192. package/src/modules/dx/relativeDateTime/relativeDateTime.stories.ts +0 -83
  193. package/src/modules/dx/searchResults/searchResults.stories.ts +0 -36
  194. package/src/modules/dx/section/__tests__/section.test.ts +0 -17
  195. package/src/modules/dx/section/section.stories.ts +0 -381
  196. package/src/modules/dx/sectionSignup/__tests__/sectionSignup.test.ts +0 -66
  197. package/src/modules/dx/sectionSignup/sectionSignup.stories.ts +0 -49
  198. package/src/modules/dx/select/select.stories.ts +0 -59
  199. package/src/modules/dx/sidebar/__tests__/mockProps.ts +0 -181
  200. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEmptyEvent.ts +0 -6
  201. package/src/modules/dx/sidebar/__tests__/mockSearchChangeEvent.ts +0 -527
  202. package/src/modules/dx/sidebar/__tests__/sidebar.test.ts +0 -568
  203. package/src/modules/dx/sidebar/sidebar.stories.ts +0 -188
  204. package/src/modules/dx/sidebarOld/__tests__/mockProps.ts +0 -178
  205. package/src/modules/dx/sidebarOld/__tests__/sidebarOld.test.ts +0 -570
  206. package/src/modules/dx/sidebarOld/sidebarOld.stories.ts +0 -139
  207. package/src/modules/dx/sidebarSearch/__tests__/mockPreloadedState.ts +0 -1686
  208. package/src/modules/dx/sidebarSearch/__tests__/sidebarSearch.test.ts +0 -175
  209. package/src/modules/dx/sidebarSearchResult/__tests__/sidebarSearchResult.test.ts +0 -96
  210. package/src/modules/dx/slackCta/__tests__/slackCta.test.ts +0 -36
  211. package/src/modules/dx/slackCta/slackCta.stories.ts +0 -25
  212. package/src/modules/dx/socials/__tests__/socials.test.ts +0 -114
  213. package/src/modules/dx/socials/socials.stories.ts +0 -24
  214. package/src/modules/dx/spinner/__tests__/spinner.test.ts +0 -37
  215. package/src/modules/dx/spinner/spinner.stories.ts +0 -69
  216. package/src/modules/dx/tab/__tests__/tab.test.ts +0 -129
  217. package/src/modules/dx/tab/tab.stories.ts +0 -57
  218. package/src/modules/dx/toc/__tests__/mockProps.ts +0 -28
  219. package/src/modules/dx/toc/__tests__/toc.test.ts +0 -109
  220. package/src/modules/dx/toc/toc.stories.ts +0 -26
  221. package/src/modules/dx/tooltip/__tests__/tooltip.test.ts +0 -22
  222. package/src/modules/dx/tooltip/tooltip.stories.ts +0 -46
  223. package/src/modules/dx/topics/__tests__/mockProps.ts +0 -3
  224. package/src/modules/dx/topics/__tests__/topics.test.ts +0 -31
  225. package/src/modules/dx/tree/__tests__/mockProps.ts +0 -215
  226. package/src/modules/dx/tree/__tests__/tree.test.ts +0 -346
  227. package/src/modules/dx/tree/__tests__/treeHandler.test.ts +0 -194
  228. package/src/modules/dx/tree/tree.stories.ts +0 -65
  229. package/src/modules/dx/treeItem/__tests__/mockProps.ts +0 -46
  230. package/src/modules/dx/treeItem/__tests__/treeItem.test.ts +0 -377
  231. package/src/modules/dx/treeTile/__tests__/mockProps.ts +0 -16
  232. package/src/modules/dx/treeTile/__tests__/treeTile.test.ts +0 -168
  233. package/src/modules/dx/typeBadge/__tests__/typeBadge.test.ts +0 -77
  234. package/src/modules/dx/typeBadge/typeBadge.stories.ts +0 -114
  235. package/src/modules/dx/typeBadgeGroup/__tests__/mockProps.ts +0 -11
  236. package/src/modules/dx/typeBadgeGroup/__tests__/typeBadgeGroup.test.ts +0 -72
  237. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.stories.ts +0 -19
  238. package/src/modules/test-components/buttonTest/buttonTest.html +0 -3
  239. package/src/modules/test-components/buttonTest/buttonTest.ts +0 -3
  240. package/src/modules/test-components/codeBlockTest/codeBlockTest.js +0 -4
  241. package/src/modules/test-components/featureGridTest/featureGridTest.html +0 -7
  242. package/src/modules/test-components/featureGridTest/featureGridTest.ts +0 -5
  243. package/src/modules/test-components/instrumentationTest/instrumentationTest.html +0 -4
  244. package/src/modules/test-components/instrumentationTest/instrumentationTest.ts +0 -8
  245. package/src/modules/test-components/popoverTest/popoverTest.html +0 -6
  246. package/src/modules/test-components/popoverTest/popoverTest.ts +0 -5
  247. package/src/modules/test-components/slackCtaTest/slackCtaTest.html +0 -3
  248. package/src/modules/test-components/slackCtaTest/slackCtaTest.ts +0 -3
  249. package/src/modules/utils/highlight/__tests__/highlight.test.ts +0 -108
  250. package/src/modules/utils/highlight/__tests__/mockProps.ts +0 -45
  251. package/src/modules/utils-internal/jest/jest.ts +0 -58
  252. package/src/modules/utils-internal/recentSearches/__tests__/recentSearches.test.ts +0 -83
  253. package/src/modules/utils-internal/storybook/storybook.ts +0 -32
  254. package/src/modules/utils-internal/tests/tests.ts +0 -38
  255. package/src/modules/utils-internal/wordpress/__tests__/wordpress.test.ts +0 -15
@@ -1,346 +0,0 @@
1
- import Tree from "dx/tree";
2
- import TreeItem from "dx/treeItem";
3
- import { createRenderComponent } from "utils-internal/tests";
4
- import { TreeHandler } from "../treeHandler";
5
- import {
6
- INITIALIZE_MOCK_PARAMETER,
7
- INITIALIZE_MOCK_RESULT,
8
- MOCK_TILE_DETAIL,
9
- MOCK_ICON_DETAIL
10
- } from "./mockProps";
11
-
12
- const TAG = "dx-tree";
13
- const renderComponent = createRenderComponent(TAG, Tree);
14
-
15
- const mockInitialize = jest.fn();
16
- const mockGetKeyByName = jest.fn();
17
- const mockGetNode = jest.fn();
18
- const mockExpandToSelected = jest.fn();
19
- const mockRegisterSetExpanded = jest.fn();
20
-
21
- jest.mock("../treeHandler", () => {
22
- return {
23
- TreeHandler: jest.fn().mockImplementation(() => {
24
- return {
25
- initialize: mockInitialize,
26
- getNode: mockGetNode,
27
- getKeyByName: mockGetKeyByName,
28
- expandToSelected: mockExpandToSelected,
29
- registerSetExpanded: mockRegisterSetExpanded
30
- };
31
- })
32
- };
33
- });
34
-
35
- describe(TAG, () => {
36
- beforeEach(() => {
37
- mockInitialize.mockReturnValue(INITIALIZE_MOCK_RESULT);
38
- });
39
-
40
- describe("component render", () => {
41
- it("should render dx-tree-item with appropiate properties", () => {
42
- const component = renderComponent({
43
- treeRoot: INITIALIZE_MOCK_PARAMETER
44
- });
45
- expect(component.treeRoot).toEqual(INITIALIZE_MOCK_RESULT);
46
- expect(component.value).toBeUndefined();
47
-
48
- const treeItem: TreeItem =
49
- component.shadowRoot.querySelector("dx-tree-item");
50
- expect(treeItem).not.toBeNull();
51
- expect(treeItem.treeNode).toEqual(INITIALIZE_MOCK_RESULT);
52
- expect(treeItem.isRoot).toBe(true);
53
- expect(treeItem.selectedKey).toBeUndefined();
54
-
55
- expect(TreeHandler).toHaveBeenCalledTimes(1);
56
- expect(mockInitialize).toHaveBeenCalledTimes(1);
57
- expect(mockInitialize).toHaveBeenCalledWith(
58
- INITIALIZE_MOCK_PARAMETER
59
- );
60
- expect(mockGetKeyByName).not.toBeCalled();
61
- expect(mockGetNode).not.toBeCalled();
62
- expect(mockExpandToSelected).not.toBeCalled();
63
-
64
- return expect(component).toBeAccessible();
65
- });
66
-
67
- it("should render dx-tree-item with treeRoot assigned as json and provided value", () => {
68
- const expectedKey = INITIALIZE_MOCK_RESULT.key;
69
- mockGetKeyByName.mockReturnValue(expectedKey);
70
-
71
- const component = renderComponent({
72
- treeRoot: JSON.stringify(INITIALIZE_MOCK_PARAMETER),
73
- value: INITIALIZE_MOCK_PARAMETER.name
74
- });
75
-
76
- expect(component.treeRoot).toEqual(INITIALIZE_MOCK_RESULT);
77
- expect(component.value).toBe(INITIALIZE_MOCK_PARAMETER.name);
78
-
79
- const treeItem: TreeItem =
80
- component.shadowRoot.querySelector("dx-tree-item");
81
- expect(treeItem).not.toBeNull();
82
- expect(treeItem.treeNode).toEqual(INITIALIZE_MOCK_RESULT);
83
- expect(treeItem.isRoot).toBe(true);
84
- expect(treeItem.selectedKey).toBe(expectedKey);
85
-
86
- expect(TreeHandler).toHaveBeenCalledTimes(1);
87
-
88
- expect(mockInitialize).toHaveBeenCalledTimes(1);
89
- expect(mockInitialize).toHaveBeenCalledWith(
90
- INITIALIZE_MOCK_PARAMETER
91
- );
92
-
93
- expect(mockGetKeyByName).toBeCalledTimes(1);
94
- expect(mockGetKeyByName).toHaveBeenCalledWith(
95
- INITIALIZE_MOCK_PARAMETER.name
96
- );
97
-
98
- expect(mockExpandToSelected).toBeCalledTimes(1);
99
- expect(mockExpandToSelected).toHaveBeenCalledWith(expectedKey);
100
-
101
- expect(mockGetNode).not.toBeCalled();
102
-
103
- return expect(component).toBeAccessible();
104
- });
105
-
106
- it("should update selectedKey to undefined if assigned value name does not exist", () => {
107
- const expectedValue = "not_exist";
108
- const validKey = "0.1";
109
-
110
- mockGetKeyByName
111
- .mockReturnValueOnce(validKey)
112
- .mockReturnValueOnce(undefined);
113
-
114
- const component = renderComponent({
115
- treeRoot: INITIALIZE_MOCK_PARAMETER,
116
- value: INITIALIZE_MOCK_PARAMETER.name
117
- });
118
-
119
- const treeItem: TreeItem =
120
- component.shadowRoot.querySelector("dx-tree-item");
121
- expect(treeItem).not.toBeNull();
122
- expect(treeItem.selectedKey).toBe(validKey);
123
-
124
- component.value = expectedValue;
125
- expect(component.value).toBe(expectedValue);
126
-
127
- expect(TreeHandler).toHaveBeenCalledTimes(1);
128
-
129
- expect(mockInitialize).toHaveBeenCalledTimes(1);
130
- expect(mockInitialize).toHaveBeenCalledWith(
131
- INITIALIZE_MOCK_PARAMETER
132
- );
133
-
134
- expect(mockGetKeyByName).toBeCalledTimes(2);
135
- expect(mockGetKeyByName).toHaveBeenNthCalledWith(
136
- 1,
137
- INITIALIZE_MOCK_PARAMETER.name
138
- );
139
- expect(mockGetKeyByName).toHaveBeenNthCalledWith(2, expectedValue);
140
-
141
- expect(mockExpandToSelected).toHaveBeenCalledTimes(2);
142
- expect(mockExpandToSelected).toHaveBeenNthCalledWith(1, validKey);
143
- expect(mockExpandToSelected).toHaveBeenNthCalledWith(2, undefined);
144
-
145
- expect(mockGetNode).not.toBeCalled();
146
- return Promise.resolve().then(() => {
147
- expect(treeItem.selectedKey).toBeUndefined();
148
-
149
- return expect(component).toBeAccessible();
150
- });
151
- });
152
-
153
- it("should update selectedKey when value is defined before treeRoot", () => {
154
- const expectedKey = INITIALIZE_MOCK_RESULT.key;
155
- mockGetKeyByName.mockReturnValue(expectedKey);
156
-
157
- const component = renderComponent({
158
- value: INITIALIZE_MOCK_PARAMETER.name
159
- });
160
- component.treeRoot = INITIALIZE_MOCK_PARAMETER;
161
-
162
- expect(TreeHandler).toHaveBeenCalledTimes(1);
163
- expect(mockInitialize).toHaveBeenCalledTimes(1);
164
- expect(mockInitialize).toHaveBeenCalledWith(
165
- INITIALIZE_MOCK_PARAMETER
166
- );
167
-
168
- expect(mockGetKeyByName).toBeCalledTimes(1);
169
- expect(mockGetKeyByName).toBeCalledWith(
170
- INITIALIZE_MOCK_PARAMETER.name
171
- );
172
-
173
- expect(mockExpandToSelected).toHaveBeenCalledTimes(1);
174
- expect(mockExpandToSelected).toHaveBeenCalledWith(expectedKey);
175
-
176
- expect(mockGetNode).not.toBeCalled();
177
-
178
- return Promise.resolve().then(() => {
179
- const treeItem: TreeItem =
180
- component.shadowRoot.querySelector("dx-tree-item");
181
- expect(treeItem).not.toBeNull();
182
- expect(treeItem.selectedKey).toBe(expectedKey);
183
-
184
- return expect(component).toBeAccessible();
185
- });
186
- });
187
-
188
- it("should not render dx-tree-item if treeRoot is not defined", () => {
189
- const component = renderComponent();
190
- expect(
191
- component.shadowRoot.querySelector("dx-tree-item")
192
- ).toBeNull();
193
-
194
- expect(TreeHandler).not.toBeCalled();
195
- expect(mockGetKeyByName).not.toBeCalled();
196
- expect(mockGetNode).not.toBeCalled();
197
- expect(mockInitialize).not.toBeCalled();
198
- expect(mockExpandToSelected).not.toBeCalled();
199
-
200
- return expect(component).toBeAccessible();
201
- });
202
-
203
- it("should do nothing if value setter is called with the same value", () => {
204
- const { name: testName } = INITIALIZE_MOCK_PARAMETER;
205
- const component: Tree = renderComponent({
206
- treeRoot: INITIALIZE_MOCK_PARAMETER,
207
- value: testName
208
- });
209
-
210
- expect(component.value).toBe(testName);
211
- expect(TreeHandler).toBeCalledTimes(1);
212
- expect(mockInitialize).toHaveBeenCalledTimes(1);
213
- expect(mockGetKeyByName).toBeCalledTimes(1);
214
-
215
- component.value = testName;
216
-
217
- expect(component.value).toBe(testName);
218
- expect(TreeHandler).toBeCalledTimes(1);
219
- expect(mockInitialize).toHaveBeenCalledTimes(1);
220
- expect(mockGetKeyByName).toBeCalledTimes(1);
221
- });
222
- });
223
-
224
- describe("event handle", () => {
225
- it("should handle tileselected event", () => {
226
- const component = renderComponent({
227
- treeRoot: INITIALIZE_MOCK_PARAMETER
228
- });
229
-
230
- const mockSelect = jest.fn();
231
- component.addEventListener("select", mockSelect);
232
-
233
- const mockTileSelected = jest.fn();
234
- component.addEventListener("tileselected", mockTileSelected);
235
-
236
- const treeItem: TreeItem =
237
- component.shadowRoot.querySelector("dx-tree-item");
238
- treeItem.dispatchEvent(
239
- new CustomEvent("tileselected", MOCK_TILE_DETAIL)
240
- );
241
-
242
- expect(component.value).toBe(MOCK_TILE_DETAIL.detail.name);
243
-
244
- expect(TreeHandler).toBeCalledTimes(1);
245
- expect(mockInitialize).toBeCalledTimes(1);
246
- expect(mockGetNode).not.toBeCalled();
247
- expect(mockGetKeyByName).not.toBeCalled();
248
- expect(mockExpandToSelected).not.toBeCalled();
249
- expect(mockTileSelected).not.toBeCalled();
250
-
251
- expect(mockSelect).toBeCalledTimes(1);
252
-
253
- const singleCall: CustomEvent = mockSelect.mock.calls[0][0];
254
- expect(singleCall.detail).toEqual({
255
- name: MOCK_TILE_DETAIL.detail.name
256
- });
257
- expect(singleCall.composed).toBe(true);
258
- expect(singleCall.bubbles).toBe(true);
259
-
260
- return Promise.resolve().then(() => {
261
- expect(treeItem.selectedKey).toBe(MOCK_TILE_DETAIL.detail.key);
262
-
263
- return expect(component).toBeAccessible();
264
- });
265
- });
266
-
267
- it("should handle expandcollapse event", () => {
268
- const mockedResult = { isExpanded: false };
269
- mockGetNode.mockReturnValue(mockedResult);
270
-
271
- const component = renderComponent({
272
- treeRoot: INITIALIZE_MOCK_PARAMETER
273
- });
274
-
275
- const mockExpandCollapse = jest.fn();
276
- component.addEventListener("expandcollapse", mockExpandCollapse);
277
-
278
- component.shadowRoot
279
- .querySelector("dx-tree-item")
280
- .dispatchEvent(
281
- new CustomEvent("expandcollapse", MOCK_ICON_DETAIL)
282
- );
283
-
284
- expect(TreeHandler).toBeCalledTimes(1);
285
- expect(mockInitialize).toBeCalledTimes(1);
286
- expect(mockGetKeyByName).not.toBeCalled();
287
- expect(mockExpandToSelected).not.toBeCalled();
288
-
289
- expect(mockGetNode).toBeCalledTimes(1);
290
- expect(mockGetNode).toBeCalledWith(MOCK_ICON_DETAIL.detail.key);
291
- expect(mockedResult.isExpanded).toBe(true);
292
- expect(mockExpandCollapse).not.toBeCalled();
293
-
294
- return expect(component).toBeAccessible();
295
- });
296
-
297
- it("should do nothing if key is not found for expandcollapse event", () => {
298
- mockGetNode.mockReturnValue(undefined);
299
-
300
- const component = renderComponent({
301
- treeRoot: INITIALIZE_MOCK_PARAMETER
302
- });
303
- component.shadowRoot
304
- .querySelector("dx-tree-item")
305
- .dispatchEvent(
306
- new CustomEvent("expandcollapse", MOCK_ICON_DETAIL)
307
- );
308
-
309
- expect(TreeHandler).toBeCalledTimes(1);
310
- expect(mockInitialize).toBeCalledTimes(1);
311
- expect(mockGetKeyByName).not.toBeCalled();
312
- expect(mockExpandToSelected).not.toBeCalled();
313
-
314
- expect(mockGetNode).toBeCalledTimes(1);
315
- expect(mockGetNode).toBeCalledWith(MOCK_ICON_DETAIL.detail.key);
316
-
317
- return expect(component).toBeAccessible();
318
- });
319
-
320
- it("should handle register event from dx-tree-item", () => {
321
- const { key } = INITIALIZE_MOCK_RESULT;
322
- const detail = {
323
- key,
324
- setExpanded: jest.fn()
325
- };
326
- const component = renderComponent({
327
- treeRoot: INITIALIZE_MOCK_PARAMETER
328
- });
329
-
330
- const mockRegister = jest.fn();
331
- component.addEventListener("register", mockRegister);
332
-
333
- component.shadowRoot.querySelector("dx-tree-item").dispatchEvent(
334
- new CustomEvent("register", {
335
- detail,
336
- bubbles: true,
337
- composed: true
338
- })
339
- );
340
-
341
- expect(mockRegisterSetExpanded).toBeCalledTimes(1);
342
- expect(mockRegisterSetExpanded).toBeCalledWith(detail);
343
- expect(mockRegister).not.toBeCalled();
344
- });
345
- });
346
- });
@@ -1,194 +0,0 @@
1
- import { TreeHandler } from "../treeHandler";
2
- import { TreeNode, InternalTreeNode } from "typings/custom";
3
- import {
4
- SAMPLE_TREE_MULTIPLE_LEVELS,
5
- SAMPLE_TREE_ONE_LEVEL,
6
- SAMPLE_TREE_WITH_LINKS
7
- } from "./mockProps";
8
-
9
- const assertTreeNode = (
10
- internalTree: InternalTreeNode,
11
- tree: TreeNode,
12
- expectedLevel: number,
13
- expectedKey: string
14
- ) => {
15
- expect(internalTree.label).toBe(tree.label);
16
- expect(internalTree.name).toBe(tree.name);
17
- expect(internalTree.isExpanded).toBe(tree.isExpanded || false);
18
- expect(internalTree.link).toEqual(tree.link);
19
- expect(internalTree.level).toBe(expectedLevel);
20
- expect(internalTree.key).toBe(expectedKey);
21
-
22
- if (internalTree.children) {
23
- expect(internalTree.children).toHaveLength(tree.children!.length);
24
- internalTree.children.forEach((child, index) => {
25
- assertTreeNode(
26
- child as InternalTreeNode,
27
- tree.children![index],
28
- expectedLevel + 1,
29
- `${expectedKey}.${index}`
30
- );
31
- });
32
- }
33
- };
34
-
35
- const getAllKeys = (tree: InternalTreeNode): Array<string> => {
36
- if (!tree.children || tree.children.length === 0) {
37
- return [tree.key];
38
- }
39
- const keys: Array<string> = [];
40
- tree.children.forEach((child: InternalTreeNode) => {
41
- keys.push(...getAllKeys(child));
42
- });
43
-
44
- return keys;
45
- };
46
-
47
- describe("TreeHandler", () => {
48
- describe("initialize", () => {
49
- it("should convert a single level tree structure into the internal structure", () => {
50
- const treeHandler = new TreeHandler();
51
- const result = treeHandler.initialize(SAMPLE_TREE_ONE_LEVEL);
52
- expect(result).toBeTruthy();
53
- assertTreeNode(result, SAMPLE_TREE_ONE_LEVEL, 0, "0");
54
- });
55
-
56
- it("should convert a multiple level tree structure into the internal structure", () => {
57
- const treeHandler = new TreeHandler();
58
- const result = treeHandler.initialize(SAMPLE_TREE_MULTIPLE_LEVELS);
59
- expect(result).toBeTruthy();
60
- assertTreeNode(result, SAMPLE_TREE_MULTIPLE_LEVELS, 0, "0");
61
- });
62
-
63
- it("should convert a tree structure with links into the internal structure", () => {
64
- const treeHandler = new TreeHandler();
65
- const result = treeHandler.initialize(SAMPLE_TREE_WITH_LINKS);
66
- expect(result).toBeTruthy();
67
- assertTreeNode(result, SAMPLE_TREE_WITH_LINKS, 0, "0");
68
- });
69
- });
70
-
71
- describe("getNode", () => {
72
- it("should return a node when key exist", () => {
73
- const treeHandler = new TreeHandler();
74
- const treeStructure = treeHandler.initialize(SAMPLE_TREE_ONE_LEVEL);
75
- expect(treeHandler.getNode(treeStructure.key)).toEqual(
76
- treeStructure
77
- );
78
-
79
- treeStructure.children!.forEach((child) => {
80
- expect(
81
- treeHandler.getNode((child as InternalTreeNode).key)
82
- ).toEqual(child);
83
- });
84
- });
85
-
86
- it("should return undefined in case the key does not exist", () => {
87
- const treeHandler = new TreeHandler();
88
- treeHandler.initialize(SAMPLE_TREE_ONE_LEVEL);
89
- expect(treeHandler.getNode("not_exist")).toBeUndefined();
90
- });
91
- });
92
-
93
- describe("getKeyByName", () => {
94
- it("should return the key value if name exist", () => {
95
- const treeHandler = new TreeHandler();
96
- const treeStructure = treeHandler.initialize(SAMPLE_TREE_ONE_LEVEL);
97
- expect(treeHandler.getKeyByName(treeStructure.name)).toBe(
98
- treeStructure.key
99
- );
100
-
101
- treeStructure.children!.forEach((child) => {
102
- const { key, name } = child as InternalTreeNode;
103
- expect(treeHandler.getKeyByName(name)).toBe(key);
104
- });
105
- });
106
-
107
- it("should return undefined in case the name does not exist", () => {
108
- const treeHandler = new TreeHandler();
109
- treeHandler.initialize(SAMPLE_TREE_ONE_LEVEL);
110
- expect(treeHandler.getKeyByName("not_exist")).toBeUndefined();
111
- });
112
- });
113
-
114
- describe("expandToSelected", () => {
115
- it("should mark a node as isExpanded recursively until the root", () => {
116
- const expectedKeys = ["0.2.0", "0.2", "0"];
117
- const treeHandler = new TreeHandler();
118
- const treeStructure = treeHandler.initialize(
119
- SAMPLE_TREE_MULTIPLE_LEVELS
120
- );
121
- treeHandler.expandToSelected(expectedKeys[0]);
122
-
123
- expectedKeys.forEach((expectedKey) =>
124
- expect(treeHandler.getNode(expectedKey)!.isExpanded).toBe(true)
125
- );
126
- getAllKeys(treeStructure)
127
- .filter((key) =>
128
- expectedKeys.some((expectedKey) => expectedKey !== key)
129
- )
130
- .forEach((key) =>
131
- expect(treeHandler.getNode(key)!.isExpanded).toBeFalsy()
132
- );
133
- });
134
-
135
- it("should not mark any node as isExpanded if no key is provided", () => {
136
- const treeHandler = new TreeHandler();
137
- const treeStructure = treeHandler.initialize(
138
- SAMPLE_TREE_MULTIPLE_LEVELS
139
- );
140
- treeHandler.expandToSelected();
141
- getAllKeys(treeStructure).forEach((key) =>
142
- expect(treeHandler.getNode(key)!.isExpanded).toBeFalsy()
143
- );
144
- });
145
-
146
- it("should not mark any node as isExpanded if provided key does not exist", () => {
147
- const treeHandler = new TreeHandler();
148
- const treeStructure = treeHandler.initialize(
149
- SAMPLE_TREE_MULTIPLE_LEVELS
150
- );
151
- treeHandler.expandToSelected("not_exist");
152
- getAllKeys(treeStructure).forEach((key) =>
153
- expect(treeHandler.getNode(key)!.isExpanded).toBeFalsy()
154
- );
155
- });
156
- });
157
-
158
- describe("registerSetExpanded", () => {
159
- it("should register a setExpanded callback if key is valid", () => {
160
- const treeHandler = new TreeHandler();
161
- const treeStructure = treeHandler.initialize(
162
- SAMPLE_TREE_MULTIPLE_LEVELS
163
- );
164
-
165
- const { key } = treeStructure;
166
- const mockSetExpanded = jest.fn();
167
-
168
- treeHandler.registerSetExpanded({
169
- key,
170
- setExpanded: mockSetExpanded
171
- });
172
-
173
- treeHandler.expandToSelected(key);
174
- expect(mockSetExpanded).toBeCalledTimes(1);
175
- expect(mockSetExpanded).toBeCalledWith(true);
176
- });
177
-
178
- it("should not register a not valid key", () => {
179
- const treeHandler = new TreeHandler();
180
- treeHandler.initialize(SAMPLE_TREE_MULTIPLE_LEVELS);
181
-
182
- const key = "not_valid";
183
- const mockSetExpanded = jest.fn();
184
-
185
- treeHandler.registerSetExpanded({
186
- key,
187
- setExpanded: mockSetExpanded
188
- });
189
-
190
- treeHandler.expandToSelected(key);
191
- expect(mockSetExpanded).not.toBeCalled();
192
- });
193
- });
194
- });
@@ -1,65 +0,0 @@
1
- import {
2
- SAMPLE_TREE_MULTIPLE_LEVELS,
3
- SAMPLE_TREE_ONE_LEVEL,
4
- SAMPLE_TREE_WITH_BADGES,
5
- SAMPLE_TREE_WITH_LINKS
6
- } from "./__tests__/mockProps";
7
-
8
- import { html } from "lit-html";
9
-
10
- export default {
11
- title: "dx/dx-tree",
12
- component: "dx-tree"
13
- };
14
-
15
- // prettier-ignore
16
- const styles = (addStyles: string = "") => html `
17
- <style>
18
- .tree {
19
- max-width: 300px;
20
- background-color: var(--dx-g-gray-95);
21
- ${addStyles}
22
- }
23
- </style>`;
24
-
25
- const oneLevelTreeRoot = JSON.stringify(SAMPLE_TREE_ONE_LEVEL);
26
- const multipleLevelsTreeRoot = JSON.stringify(SAMPLE_TREE_MULTIPLE_LEVELS);
27
- const treeLinksTreeRoot = JSON.stringify(SAMPLE_TREE_WITH_LINKS);
28
- const treeWithBadges = JSON.stringify(SAMPLE_TREE_WITH_BADGES);
29
-
30
- // prettier-ignore
31
- export const Base = () => html` ${styles()}
32
- <dx-tree
33
- class="tree"
34
- tree-root="${oneLevelTreeRoot}"
35
- ></dx-tree>`;
36
-
37
- // prettier-ignore
38
- export const MultilevelWithValue = () => html` ${styles()}
39
- <dx-tree
40
- class="tree"
41
- value="scenario"
42
- tree-root="${multipleLevelsTreeRoot}"
43
- ></dx-tree>`;
44
-
45
- // prettier-ignore
46
- export const MultipleLevels = () => html` ${styles()}
47
- <dx-tree
48
- class="tree"
49
- tree-root="${multipleLevelsTreeRoot}"
50
- ></dx-tree>`;
51
-
52
- // prettier-ignore
53
- export const WithLinks = () => html` ${styles()}
54
- <dx-tree
55
- class="tree"
56
- tree-root="${treeLinksTreeRoot}"
57
- ></dx-tree>`;
58
-
59
- MultipleLevels.story = { parameters: { docs: { disable: true } } };
60
- WithLinks.story = { parameters: { docs: { disable: true } } };
61
-
62
- export const WithMethodBadges = () => html`
63
- ${styles()}
64
- <dx-tree class="tree" tree-root="${treeWithBadges}"></dx-tree>
65
- `;
@@ -1,46 +0,0 @@
1
- import { InternalTreeNode } from "typings/custom";
2
-
3
- export const SINGLE_NODE: InternalTreeNode = {
4
- label: "Test label",
5
- name: "test-name",
6
- key: "0.1",
7
- level: 1
8
- };
9
-
10
- export const NODE_WITH_CHILDREN: InternalTreeNode = {
11
- label: "Test label",
12
- name: "test-name",
13
- key: "0.1",
14
- level: 1,
15
- children: [
16
- {
17
- label: "First Child",
18
- name: "first-child",
19
- key: "0.1.0",
20
- level: 2
21
- },
22
- {
23
- label: "Second Child",
24
- name: "second-child",
25
- key: "0.1.1",
26
- level: 2
27
- },
28
- {
29
- label: "Third Child",
30
- name: "third-child",
31
- key: "0.1.2",
32
- level: 2
33
- }
34
- ]
35
- };
36
-
37
- export const SINGLE_NODE_WITH_LINK: InternalTreeNode = {
38
- label: "Test label",
39
- name: "test-name",
40
- key: "0.1",
41
- level: 1,
42
- link: {
43
- href: "https://salesforce.com",
44
- target: "_parent"
45
- }
46
- };