@antv/dumi-theme-antv 0.2.2 → 0.3.0-beta.2

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 (260) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -33
  3. package/dist/builtins/Playground/index.d.ts +24 -0
  4. package/{es/builtins/Example.js → dist/builtins/Playground/index.js} +40 -33
  5. package/dist/builtins/Playground/index.module.less +15 -0
  6. package/dist/context.d.ts +5 -0
  7. package/dist/context.js +2 -0
  8. package/dist/layouts/DocLayout.d.ts +7 -0
  9. package/dist/layouts/DocLayout.js +38 -0
  10. package/dist/layouts/entry/API.d.ts +10 -0
  11. package/dist/layouts/entry/API.js +12 -0
  12. package/dist/layouts/entry/Index.d.ts +7 -0
  13. package/dist/layouts/entry/Index.js +71 -0
  14. package/dist/layouts/entry/Manual.d.ts +8 -0
  15. package/dist/layouts/entry/Manual.js +14 -0
  16. package/dist/locales/en.json +98 -0
  17. package/dist/locales/zh.json +98 -0
  18. package/dist/pages/404.d.ts +6 -0
  19. package/dist/pages/404.js +15 -0
  20. package/dist/pages/Example/index.d.ts +6 -0
  21. package/dist/pages/Example/index.js +139 -0
  22. package/dist/pages/Example/index.module.less +40 -0
  23. package/dist/pages/Examples/components/Accouncement/index.d.ts +6 -0
  24. package/dist/pages/Examples/components/Accouncement/index.js +60 -0
  25. package/dist/pages/Examples/components/Accouncement/index.module.less +9 -0
  26. package/dist/pages/Examples/components/Article/index.d.ts +2 -0
  27. package/dist/pages/Examples/components/Article/index.js +8 -0
  28. package/dist/pages/Examples/components/Article/index.module.less +2 -0
  29. package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.d.ts +10 -0
  30. package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.js +74 -0
  31. package/dist/pages/Examples/components/ExampleTopicMenu/index.d.ts +9 -0
  32. package/{es/builtins/Table.js → dist/pages/Examples/components/ExampleTopicMenu/index.js} +47 -41
  33. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.d.ts +10 -0
  34. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.js +33 -0
  35. package/dist/pages/Examples/components/GalleryPageContent/index.d.ts +10 -0
  36. package/dist/pages/Examples/components/GalleryPageContent/index.js +81 -0
  37. package/dist/pages/Examples/index.d.ts +8 -0
  38. package/dist/pages/Examples/index.js +75 -0
  39. package/dist/pages/Examples/index.module.less +605 -0
  40. package/dist/pages/Examples/types.d.ts +33 -0
  41. package/dist/pages/Examples/types.js +1 -0
  42. package/dist/plugin/examples.d.ts +12 -0
  43. package/dist/plugin/examples.js +91 -0
  44. package/dist/plugin/index.d.ts +3 -0
  45. package/dist/plugin/index.js +100 -0
  46. package/dist/plugin/utils.d.ts +5 -0
  47. package/dist/plugin/utils.js +45 -0
  48. package/dist/slots/404.d.ts +2 -0
  49. package/{es/antv/404/index.js → dist/slots/404.js} +4 -9
  50. package/{es/antv/Cases/Cases.d.ts → dist/slots/Cases/index.d.ts} +4 -4
  51. package/{es/antv/Cases/Cases.js → dist/slots/Cases/index.js} +25 -25
  52. package/{src/antv/Cases/Cases.module.less → dist/slots/Cases/index.module.less} +36 -5
  53. package/dist/slots/CodeEditor/Toolbar.d.ts +67 -0
  54. package/dist/slots/CodeEditor/Toolbar.js +152 -0
  55. package/dist/slots/CodeEditor/Toolbar.module.less +81 -0
  56. package/dist/slots/CodeEditor/index.d.ts +58 -0
  57. package/dist/slots/CodeEditor/index.js +200 -0
  58. package/dist/slots/CodeEditor/index.module.less +11 -0
  59. package/dist/slots/CodeEditor/utils.d.ts +42 -0
  60. package/dist/slots/CodeEditor/utils.js +157 -0
  61. package/dist/slots/CodePreview/CodeHeader.d.ts +19 -0
  62. package/dist/slots/CodePreview/CodeHeader.js +32 -0
  63. package/dist/slots/CodePreview/CodeHeader.module.less +0 -0
  64. package/dist/slots/CodePreview/index.d.ts +17 -0
  65. package/dist/slots/CodePreview/index.js +29 -0
  66. package/dist/slots/CodePreview/index.module.less +42 -0
  67. package/dist/slots/CodeRunner/index.d.ts +14 -0
  68. package/dist/slots/CodeRunner/index.js +76 -0
  69. package/dist/slots/CodeRunner/index.module.less +0 -0
  70. package/dist/slots/CodeRunner/utils.d.ts +10 -0
  71. package/dist/slots/CodeRunner/utils.js +36 -0
  72. package/dist/slots/Companies/index.d.ts +13 -0
  73. package/dist/slots/Companies/index.js +49 -0
  74. package/dist/slots/Companies/index.module.less +82 -0
  75. package/dist/slots/Detail/News.d.ts +9 -0
  76. package/{es/antv/Banner/Notification.js → dist/slots/Detail/News.js} +8 -11
  77. package/{src/antv/Banner/Notification.module.less → dist/slots/Detail/News.module.less} +15 -3
  78. package/dist/slots/Detail/index.d.ts +26 -0
  79. package/dist/slots/Detail/index.js +124 -0
  80. package/{src/antv/Banner/Banner.module.less → dist/slots/Detail/index.module.less} +42 -74
  81. package/dist/slots/ExampleSider/index.d.ts +55 -0
  82. package/dist/slots/ExampleSider/index.js +218 -0
  83. package/dist/slots/ExampleSider/index.module.less +141 -0
  84. package/{es/antv → dist/slots}/Features/FeatureCard.d.ts +1 -1
  85. package/{es/antv → dist/slots}/Features/FeatureCard.js +6 -6
  86. package/{src/antv → dist/slots}/Features/FeatureCard.module.less +8 -1
  87. package/{es/antv → dist/slots}/Features/index.d.ts +2 -2
  88. package/{es/antv → dist/slots}/Features/index.js +17 -25
  89. package/{src/antv/Features/Features.module.less → dist/slots/Features/index.module.less} +34 -3
  90. package/dist/slots/Footer/index.d.ts +18 -0
  91. package/dist/slots/Footer/index.js +187 -0
  92. package/dist/slots/Footer/index.module.less +85 -0
  93. package/dist/slots/Header/Logo.d.ts +7 -0
  94. package/{es/antv → dist/slots}/Header/Logo.js +6 -2
  95. package/dist/slots/Header/LogoWhite.d.ts +7 -0
  96. package/dist/slots/Header/LogoWhite.js +19 -0
  97. package/dist/slots/Header/Navs.d.ts +17 -0
  98. package/dist/slots/Header/Navs.js +46 -0
  99. package/dist/slots/Header/Products/NavigatorBanner.d.ts +10 -0
  100. package/dist/slots/Header/Products/NavigatorBanner.js +34 -0
  101. package/dist/slots/Header/Products/NavigatorBanner.module.less +39 -0
  102. package/{es/antv → dist/slots/Header}/Products/Product.d.ts +3 -3
  103. package/{es/antv → dist/slots/Header}/Products/Product.js +11 -16
  104. package/{src/antv → dist/slots/Header}/Products/Product.module.less +10 -8
  105. package/{es/antv → dist/slots/Header}/Products/getProducts.d.ts +2 -7
  106. package/dist/slots/Header/Products/getProducts.js +67 -0
  107. package/dist/slots/Header/Products/index.d.ts +9 -0
  108. package/{es/antv → dist/slots/Header}/Products/index.js +15 -22
  109. package/dist/slots/Header/Search.d.ts +12 -0
  110. package/dist/slots/Header/Search.js +90 -0
  111. package/dist/slots/Header/Search.module.less +39 -0
  112. package/dist/slots/Header/index.d.ts +66 -0
  113. package/dist/slots/Header/index.js +379 -0
  114. package/dist/slots/Header/index.module.less +382 -0
  115. package/dist/slots/Header/utils.d.ts +1 -0
  116. package/dist/slots/Header/utils.js +26 -0
  117. package/dist/slots/Loading/index.d.ts +2 -0
  118. package/dist/slots/Loading/index.js +65 -0
  119. package/dist/slots/Loading/index.module.less +12 -0
  120. package/dist/slots/Loading.d.ts +5 -0
  121. package/dist/slots/Loading.js +8 -0
  122. package/dist/slots/ManualContent/NavigatorBanner.d.ts +9 -0
  123. package/dist/slots/ManualContent/NavigatorBanner.js +36 -0
  124. package/dist/slots/ManualContent/NavigatorBanner.module.less +39 -0
  125. package/dist/slots/ManualContent/ReadingTime.d.ts +3 -0
  126. package/dist/slots/ManualContent/ReadingTime.js +10 -0
  127. package/dist/slots/ManualContent/index.d.ts +9 -0
  128. package/dist/slots/ManualContent/index.js +321 -0
  129. package/dist/slots/ManualContent/index.module.less +656 -0
  130. package/dist/slots/TOC.d.ts +5 -0
  131. package/dist/slots/TOC.js +6 -0
  132. package/dist/slots/_.less +83 -0
  133. package/dist/slots/global.d.ts +1 -0
  134. package/dist/slots/global.js +7 -0
  135. package/dist/slots/hooks.d.ts +16 -0
  136. package/{es/antv → dist/slots}/hooks.js +60 -37
  137. package/dist/slots/utils.d.ts +20 -0
  138. package/dist/slots/utils.js +154 -0
  139. package/dist/types.d.ts +3 -0
  140. package/dist/types.js +1 -0
  141. package/dist/typings.d.ts +140 -0
  142. package/package.json +108 -47
  143. package/es/antv/404/index.d.ts +0 -2
  144. package/es/antv/Banner/Banner.module.less +0 -412
  145. package/es/antv/Banner/Notification.d.ts +0 -10
  146. package/es/antv/Banner/Notification.module.less +0 -108
  147. package/es/antv/Banner/index.d.ts +0 -25
  148. package/es/antv/Banner/index.js +0 -104
  149. package/es/antv/Cases/Cases.module.less +0 -203
  150. package/es/antv/Features/FeatureCard.module.less +0 -51
  151. package/es/antv/Features/Features.module.less +0 -169
  152. package/es/antv/Footer/Footer.module.less +0 -36
  153. package/es/antv/Footer/index.d.ts +0 -12
  154. package/es/antv/Footer/index.js +0 -237
  155. package/es/antv/Header/Logo.d.ts +0 -4
  156. package/es/antv/Products/Product.module.less +0 -146
  157. package/es/antv/Products/getNewProducts.d.ts +0 -24
  158. package/es/antv/Products/getNewProducts.js +0 -35
  159. package/es/antv/Products/getProducts.js +0 -460
  160. package/es/antv/Products/index.d.ts +0 -9
  161. package/es/antv/hooks.d.ts +0 -14
  162. package/es/antv/mixins.less +0 -21
  163. package/es/antv/utils.d.ts +0 -5
  164. package/es/antv/utils.js +0 -49
  165. package/es/builtins/API.d.ts +0 -3
  166. package/es/builtins/API.js +0 -37
  167. package/es/builtins/Alert.d.ts +0 -3
  168. package/es/builtins/Alert.js +0 -7
  169. package/es/builtins/Alert.less +0 -62
  170. package/es/builtins/Badge.d.ts +0 -3
  171. package/es/builtins/Badge.js +0 -7
  172. package/es/builtins/Badge.less +0 -31
  173. package/es/builtins/Example.d.ts +0 -5
  174. package/es/builtins/Example.less +0 -47
  175. package/es/builtins/Previewer.d.ts +0 -39
  176. package/es/builtins/Previewer.js +0 -225
  177. package/es/builtins/Previewer.less +0 -406
  178. package/es/builtins/SourceCode.d.ts +0 -10
  179. package/es/builtins/SourceCode.js +0 -70
  180. package/es/builtins/SourceCode.less +0 -103
  181. package/es/builtins/Table.d.ts +0 -4
  182. package/es/builtins/Table.less +0 -43
  183. package/es/builtins/Tree.d.ts +0 -4
  184. package/es/builtins/Tree.js +0 -213
  185. package/es/builtins/Tree.less +0 -159
  186. package/es/components/Dark.d.ts +0 -9
  187. package/es/components/Dark.js +0 -125
  188. package/es/components/Dark.less +0 -121
  189. package/es/components/LocaleSelect.d.ts +0 -6
  190. package/es/components/LocaleSelect.js +0 -53
  191. package/es/components/LocaleSelect.less +0 -59
  192. package/es/components/Navbar.d.ts +0 -10
  193. package/es/components/Navbar.js +0 -155
  194. package/es/components/Navbar.less +0 -180
  195. package/es/components/SearchBar.d.ts +0 -4
  196. package/es/components/SearchBar.js +0 -81
  197. package/es/components/SearchBar.less +0 -165
  198. package/es/components/SideMenu.d.ts +0 -10
  199. package/es/components/SideMenu.js +0 -99
  200. package/es/components/SideMenu.less +0 -379
  201. package/es/components/SlugList.d.ts +0 -7
  202. package/es/components/SlugList.js +0 -38
  203. package/es/components/SlugList.less +0 -18
  204. package/es/declaration.d.ts +0 -1
  205. package/es/layout.d.ts +0 -5
  206. package/es/layout.js +0 -276
  207. package/es/style/layout.less +0 -402
  208. package/es/style/markdown.less +0 -240
  209. package/es/style/variables.less +0 -37
  210. package/src/antv/404/index.tsx +0 -25
  211. package/src/antv/Banner/Notification.tsx +0 -45
  212. package/src/antv/Banner/index.tsx +0 -139
  213. package/src/antv/Cases/Cases.tsx +0 -116
  214. package/src/antv/Features/FeatureCard.tsx +0 -24
  215. package/src/antv/Features/index.tsx +0 -86
  216. package/src/antv/Footer/Footer.module.less +0 -36
  217. package/src/antv/Footer/index.tsx +0 -272
  218. package/src/antv/Header/Logo.tsx +0 -85
  219. package/src/antv/Products/Product.tsx +0 -80
  220. package/src/antv/Products/getNewProducts.tsx +0 -53
  221. package/src/antv/Products/getProducts.tsx +0 -626
  222. package/src/antv/Products/index.tsx +0 -70
  223. package/src/antv/hooks.ts +0 -87
  224. package/src/antv/mixins.less +0 -21
  225. package/src/antv/utils.ts +0 -44
  226. package/src/builtins/API.tsx +0 -57
  227. package/src/builtins/Alert.less +0 -62
  228. package/src/builtins/Alert.tsx +0 -4
  229. package/src/builtins/Badge.less +0 -31
  230. package/src/builtins/Badge.tsx +0 -4
  231. package/src/builtins/Example.less +0 -47
  232. package/src/builtins/Example.tsx +0 -34
  233. package/src/builtins/Previewer.less +0 -406
  234. package/src/builtins/Previewer.tsx +0 -264
  235. package/src/builtins/SourceCode.less +0 -103
  236. package/src/builtins/SourceCode.tsx +0 -55
  237. package/src/builtins/Table.less +0 -43
  238. package/src/builtins/Table.tsx +0 -42
  239. package/src/builtins/Tree.less +0 -159
  240. package/src/builtins/Tree.tsx +0 -130
  241. package/src/components/Dark.less +0 -121
  242. package/src/components/Dark.tsx +0 -78
  243. package/src/components/LocaleSelect.less +0 -59
  244. package/src/components/LocaleSelect.tsx +0 -53
  245. package/src/components/Navbar.less +0 -180
  246. package/src/components/Navbar.tsx +0 -152
  247. package/src/components/SearchBar.less +0 -165
  248. package/src/components/SearchBar.tsx +0 -68
  249. package/src/components/SideMenu.less +0 -379
  250. package/src/components/SideMenu.tsx +0 -148
  251. package/src/components/SlugList.less +0 -18
  252. package/src/components/SlugList.tsx +0 -20
  253. package/src/declaration.d.ts +0 -1
  254. package/src/layout.tsx +0 -225
  255. package/src/style/layout.less +0 -402
  256. package/src/style/markdown.less +0 -240
  257. package/src/style/variables.less +0 -37
  258. package/src/test/SearchBar.test.ts +0 -32
  259. package/src/test/Table.test.tsx +0 -41
  260. package/src/test/index.test.tsx +0 -377
@@ -1,377 +0,0 @@
1
- import '@testing-library/jest-dom';
2
- import React from 'react';
3
- import { render, queryByAttribute, queryAllByAttribute, fireEvent } from '@testing-library/react';
4
- import type { MemoryHistory} from '@umijs/runtime';
5
- import { createMemoryHistory, Router } from '@umijs/runtime';
6
- import { context as Context } from 'dumi/theme';
7
- import SourceCode from '../builtins/SourceCode';
8
- import Alert from '../builtins/Alert';
9
- import Badge from '../builtins/Badge';
10
- import Tree from '../builtins/Tree';
11
- import Previewer from '../builtins/Previewer';
12
- import API from '../builtins/API';
13
- import Layout from '../layout';
14
-
15
- let history: MemoryHistory;
16
-
17
- // mock history location which import from 'dumi'
18
- jest.mock('dumi', () => ({
19
- history: { location: { pathname: '/' } },
20
- }));
21
-
22
- describe('default theme', () => {
23
- history = createMemoryHistory({ initialEntries: ['/', '/en-US'], initialIndex: 0 });
24
- const baseCtx = {
25
- title: 'test',
26
- locale: 'zh-CN',
27
- routes: [
28
- {
29
- path: '/',
30
- title: '首页',
31
- meta: {},
32
- },
33
- {
34
- path: '/en-US',
35
- title: 'Home',
36
- meta: {},
37
- },
38
- ],
39
- config: {
40
- locales: [
41
- { name: 'zh-CN', label: '中文' },
42
- { name: 'en-US', label: 'English' },
43
- ],
44
- menus: {},
45
- navs: {},
46
- title: 'test',
47
- logo: '/',
48
- mode: 'site' as 'doc' | 'site',
49
- repository: { branch: 'master' },
50
- },
51
- meta: {},
52
- menu: [
53
- {
54
- title: '分组',
55
- children: [
56
- {
57
- title: 'English',
58
- path: '/en',
59
- },
60
- ],
61
- },
62
- ],
63
- nav: [
64
- {
65
- path: '/',
66
- title: '首页',
67
- children: [],
68
- },
69
- {
70
- title: '生态',
71
- children: [
72
- {
73
- path: 'https://d.umijs.org',
74
- title: 'GitHub',
75
- children: [],
76
- },
77
- ],
78
- },
79
- ],
80
- base: '/',
81
- apis: {
82
- MultipleExports: {
83
- Other: [
84
- {
85
- identifier: 'other',
86
- type: 'string',
87
- },
88
- ],
89
- },
90
- }
91
- };
92
- const baseProps = {
93
- history,
94
- location: { ...history.location, query: {} },
95
- match: { params: {}, isExact: true, path: '/', url: '/' },
96
- route: { path: '/', routes: baseCtx.routes },
97
- };
98
-
99
- it('should render site home page', () => {
100
- const attrName = 'data-prefers-color';
101
- document.documentElement.setAttribute(attrName, 'light');
102
- localStorage.setItem('dumi:prefers-color', 'light');
103
- const wrapper = ({ children }) => (
104
- <Context.Provider
105
- value={{
106
- ...baseCtx,
107
- meta: {
108
- title: 'test',
109
- hero: {
110
- title: 'Hero',
111
- desc: 'Hero Description',
112
- actions: [{ text: '开始', link: '/' }],
113
- },
114
- features: [
115
- { title: 'Feat', desc: 'Feature' },
116
- { title: 'Feat2', link: '/' },
117
- ],
118
- },
119
- }}
120
- >
121
- {children}
122
- </Context.Provider>
123
- );
124
- const { container, getAllByText, getByText } = render(
125
- <Router history={history}>
126
- <Layout {...baseProps}>
127
- <h1>Home Page</h1>
128
- </Layout>
129
- </Router>,
130
- { wrapper },
131
- );
132
-
133
- // expect navbar be rendered
134
- expect(getAllByText('首页')).not.toBeNull();
135
-
136
- // expect content be rendered
137
- expect(getByText('Home Page')).not.toBeNull();
138
-
139
- // expect hero be rendered
140
- expect(getByText('Hero')).not.toBeNull();
141
-
142
- // expect features be rendered
143
- expect(getByText('Feature')).not.toBeNull();
144
- expect(getByText('Feat2')).not.toBeNull();
145
-
146
- // trigger mobile menu display
147
- queryByAttribute('class', container, '__dumi-default-navbar-toggle').click();
148
-
149
- // expect sidemenu display for mobile
150
- expect(queryByAttribute('data-mobile-show', container, 'true')).not.toBeNull();
151
-
152
- // expect dark render and click success
153
- const menu = queryByAttribute('class', container, '__dumi-default-menu');
154
- const sunMenu = queryByAttribute('class', menu, '__dumi-default-dark-sun __dumi-default-dark-switch-active');
155
- expect(sunMenu).not.toBeNull();
156
- const moonMenu = queryByAttribute('class', container, '__dumi-default-dark-moon');
157
- expect(moonMenu).not.toBeNull();
158
- moonMenu.click();
159
- expect(document.documentElement.getAttribute(attrName)).toEqual('dark');
160
- expect(queryByAttribute('data-mobile-show', container, 'true')).toBeNull();
161
-
162
- const navbar = queryByAttribute('class', container, '__dumi-default-navbar');
163
- const moonNav = queryByAttribute('class', navbar, '__dumi-default-dark-moon __dumi-default-dark-switch-active');
164
- moonNav.click();
165
- expect(queryByAttribute('class', navbar, '__dumi-default-dark-switch __dumi-default-dark-switch-open')).not.toBeNull();
166
- const switchList = queryByAttribute('class', navbar, '__dumi-default-dark-switch-list');
167
- expect(switchList).not.toBeNull();
168
- queryByAttribute('class', switchList, '__dumi-default-dark-sun').click();
169
- expect(document.documentElement.getAttribute(attrName)).toEqual('light');
170
- expect(queryByAttribute('class', navbar, '__dumi-default-dark-switch-list')).toBeNull();
171
- expect(queryByAttribute('class', navbar, '__dumi-default-dark-switch __dumi-default-dark-switch-open')).toBeNull();
172
- });
173
-
174
- it('should render documentation page', async () => {
175
- const updatedTime = 1604026996000;
176
- const wrapper = ({ children }) => (
177
- <Context.Provider
178
- value={{
179
- ...baseCtx,
180
- meta: {
181
- title: 'test',
182
- slugs: [{ value: 'Slug A', heading: 'a', depth: 2 }],
183
- updatedTime,
184
- filePath: 'temp',
185
- },
186
- }}
187
- >
188
- {children}
189
- </Context.Provider>
190
- );
191
- const { getByText, getAllByText } = render(
192
- <Router history={history}>
193
- <Layout {...baseProps}>
194
- <h1>Doc</h1>
195
- </Layout>
196
- </Router>,
197
- { wrapper },
198
- );
199
-
200
- // expect slugs be rendered
201
- expect(getByText('Slug A')).not.toBeNull();
202
-
203
- // expect footer date show
204
- expect(new Date(updatedTime).toLocaleString([], { hour12: false })).not.toBeNull();
205
-
206
- // trigger locale change
207
- getAllByText('English')[0].click();
208
-
209
- // expect location change
210
- expect(history.location.pathname).toEqual(baseCtx.routes[1].path);
211
- });
212
-
213
- it('should render builtin components correctly', () => {
214
- const code = "console.log('Hello World!')";
215
- const wrapper = ({ children }) => (
216
- <Context.Provider
217
- value={{
218
- ...baseCtx,
219
- meta: {
220
- title: 'test',
221
- slugs: [{ value: 'Slug A', heading: 'a', depth: 2 }],
222
- },
223
- }}
224
- >
225
- {children}
226
- </Context.Provider>
227
- );
228
-
229
- const { getByText, getByTitle, getAllByTitle, container } = render(
230
- <Router history={history}>
231
- <Layout {...baseProps}>
232
- <>
233
- <a href="" id="btn">
234
- click
235
- </a>
236
- <SourceCode code={code} lang="javascript" />
237
- <Alert type="info">Alert</Alert>
238
- <Badge type="info">Badge</Badge>
239
- <Tree>
240
- <ul>
241
- <li>
242
- 1
243
- <small>test1</small>
244
- <ul>
245
- <li>
246
- 1-1
247
- <small>test1-1</small>
248
- </li>
249
- </ul>
250
- </li>
251
- </ul>
252
- </Tree>
253
- <Previewer
254
- title="demo-1"
255
- identifier="demo-1"
256
- sources={{
257
- _: {
258
- jsx: "export default () => 'JavaScript'",
259
- tsx: "export default () => 'TypeScript'",
260
- },
261
- }}
262
- dependencies={{}}
263
- >
264
- <>demo-1 Content</>
265
- </Previewer>
266
- <Previewer
267
- title="demo-2"
268
- identifier="demo-2"
269
- sources={{
270
- _: {
271
- jsx: "export default () => 'Main'",
272
- },
273
- 'Other.jsx': {
274
- import: './Other.jsx',
275
- content: "export default () => 'Other'",
276
- },
277
- }}
278
- dependencies={{}}
279
- >
280
- <>demo-2 Content</>
281
- </Previewer>
282
- <Previewer
283
- title="demo-3"
284
- identifier="demo-3"
285
- sources={{
286
- _: {
287
- jsx: "export default () => 'Main'",
288
- },
289
- 'Other.jsx': {
290
- import: './Other.jsx',
291
- content: "export default () => 'Other'",
292
- },
293
- }}
294
- dependencies={{}}
295
- iframe={100}
296
- >
297
- <>demo-3 Content</>
298
- </Previewer>
299
- <API identifier="MultipleExports" export="Other" />
300
- </>
301
- </Layout>
302
- </Router>,
303
- { wrapper },
304
- );
305
-
306
- // toggle side menu display
307
- fireEvent(
308
- container.querySelector('.__dumi-default-navbar-toggle'),
309
- new MouseEvent('click', {
310
- bubbles: true,
311
- cancelable: true,
312
- }),
313
- );
314
-
315
- fireEvent(
316
- container.querySelector('#btn'),
317
- new MouseEvent('click', {
318
- bubbles: true,
319
- cancelable: true,
320
- }),
321
- );
322
-
323
- // test tree render
324
- expect(queryAllByAttribute('class', container, '__dumi-site-tree-icon icon-minus-square').length).toBe(2);
325
- expect(queryAllByAttribute('class', container, '__dumi-site-tree-icon icon-folder-open').length).toBe(2);
326
- expect(queryAllByAttribute('class', container, '__dumi-site-tree-icon icon-file').length).toBe(1);
327
-
328
- expect(getByText('<root>')).toHaveClass('rc-tree-title');
329
- expect(getByText('1')).toHaveClass('rc-tree-title');
330
- expect(getByText('test1')).not.toBeNull();
331
-
332
- getAllByTitle('<root>')[0].click();
333
- expect(queryAllByAttribute('class', container, '__dumi-site-tree-icon icon-plus-square').length).toBe(1);
334
- expect(queryAllByAttribute('class', container, '__dumi-site-tree-icon icon-folder').length).toBe(1);
335
-
336
- // expect SourceCode highlight
337
- expect(getByText('console')).toHaveClass('token');
338
-
339
- // expect Alert be rendered
340
- expect(getByText('Alert')).toHaveAttribute('type', 'info');
341
-
342
- // expect Badge be rendered
343
- expect(getByText('Badge')).toHaveClass('__dumi-default-badge');
344
-
345
- // expect Previewer be rendered
346
- expect(getByText('demo-1')).not.toBeNull();
347
-
348
- // trigger source code display for demo-1
349
- getAllByTitle('Toggle source code panel')[0].click();
350
-
351
- // expect show TypeScript code default
352
- expect(getByText("'TypeScript'")).not.toBeNull();
353
-
354
- // trigger source code display for demo-2
355
- getAllByTitle('Toggle source code panel')[1].click();
356
-
357
- // expect show code of main file
358
- expect(getByText("'Main'")).not.toBeNull();
359
-
360
- // trigger file change
361
- getByText('Other.jsx').click();
362
-
363
- // expect show code of main file
364
- expect(getByText("'Other'")).not.toBeNull();
365
-
366
- // expect render iframe demo
367
- (container.querySelector('[data-iframe] button[role=refresh]') as HTMLElement).click();
368
- expect(container.querySelector('[data-iframe]').innerHTML).not.toContain('demo-3 Content');
369
- expect(container.querySelector('[data-iframe] iframe')).not.toBeNull();
370
- expect((container.querySelector('[data-iframe] iframe') as HTMLElement).style.height).toEqual(
371
- '100px',
372
- );
373
-
374
- // expect render API property
375
- expect(getByText('other', { selector: 'table td' })).not.toBeNull();
376
- });
377
- });