@salesforcedevs/dx-components 0.26.0 → 0.26.1-alpha.13

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