@icij/murmur-next 4.0.0 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +15 -19
  2. package/dist/lib/components/AccordionStep.vue.d.ts +79 -0
  3. package/dist/lib/components/AccordionWrapper.vue.d.ts +33 -0
  4. package/dist/lib/components/ActiveTextTruncate.vue.d.ts +101 -0
  5. package/dist/lib/components/AdvancedLinkForm.vue.d.ts +168 -0
  6. package/dist/lib/components/Brand.vue.d.ts +55 -0
  7. package/dist/lib/components/BrandExpansion.vue.d.ts +105 -0
  8. package/dist/lib/components/ConfirmButton.vue.d.ts +158 -0
  9. package/dist/lib/components/ContentPlaceholder.vue.d.ts +44 -0
  10. package/dist/lib/components/CustomPagination.vue.d.ts +130 -0
  11. package/dist/lib/components/DigitsInput.vue.d.ts +66 -0
  12. package/dist/lib/components/DonateForm.vue.d.ts +46 -0
  13. package/dist/lib/components/EmbedForm.vue.d.ts +121 -0
  14. package/dist/lib/components/EmbeddableFooter.vue.d.ts +103 -0
  15. package/dist/lib/components/FollowUsPopover.vue.d.ts +16 -0
  16. package/dist/lib/components/GenericFooter.vue.d.ts +47 -0
  17. package/dist/lib/components/GenericHeader.vue.d.ts +928 -0
  18. package/dist/lib/components/HapticCopy.vue.d.ts +156 -0
  19. package/dist/lib/components/ImddbHeader.vue.d.ts +960 -0
  20. package/dist/lib/components/OrdinalLegend.vue.d.ts +87 -0
  21. package/dist/lib/components/RangePicker.vue.d.ts +196 -0
  22. package/dist/lib/components/ResponsiveIframe.vue.d.ts +45 -0
  23. package/dist/lib/components/ScaleLegend.vue.d.ts +101 -0
  24. package/dist/lib/components/SecretInput.vue.d.ts +99 -0
  25. package/dist/lib/components/SelectableDropdown.vue.d.ts +210 -0
  26. package/dist/lib/components/SharingOptions.vue.d.ts +153 -0
  27. package/dist/lib/components/SharingOptionsLink.vue.d.ts +200 -0
  28. package/dist/lib/components/SignUpForm.vue.d.ts +141 -0
  29. package/dist/lib/components/SlideUpDown.vue.d.ts +74 -0
  30. package/dist/lib/components/TexturedDeck.vue.d.ts +89 -0
  31. package/dist/lib/components/TinyPagination.vue.d.ts +188 -0
  32. package/dist/lib/composables/chart.d.ts +48 -0
  33. package/dist/lib/composables/resizeObserver.d.ts +22 -0
  34. package/dist/lib/composables/sendEmail.d.ts +6 -0
  35. package/dist/lib/config.d.ts +19 -0
  36. package/dist/lib/config.default.d.ts +34 -0
  37. package/dist/lib/datavisualisations/BarChart.vue.d.ts +234 -0
  38. package/dist/lib/datavisualisations/ColumnChart.vue.d.ts +404 -0
  39. package/dist/lib/datavisualisations/LineChart.vue.d.ts +200 -0
  40. package/dist/lib/datavisualisations/StackedBarChart.vue.d.ts +342 -0
  41. package/dist/lib/datavisualisations/StackedColumnChart.vue.d.ts +412 -0
  42. package/dist/lib/enums.d.ts +32 -0
  43. package/dist/lib/i18n.d.ts +4 -0
  44. package/dist/lib/keys.d.ts +2 -0
  45. package/dist/lib/main.d.ts +52 -0
  46. package/dist/lib/maps/ChoroplethMap.vue.d.ts +460 -0
  47. package/dist/lib/maps/ChoroplethMapAnnotation.vue.d.ts +188 -0
  48. package/dist/lib/maps/SymbolMap.vue.d.ts +276 -0
  49. package/dist/lib/murmur.css +1 -0
  50. package/dist/lib/murmur.js +44661 -0
  51. package/dist/lib/murmur.js.map +1 -0
  52. package/dist/lib/murmur.umd.cjs +837 -0
  53. package/dist/lib/murmur.umd.cjs.map +1 -0
  54. package/dist/lib/types.d.ts +44 -0
  55. package/dist/lib/utils/animation.d.ts +8 -0
  56. package/dist/lib/utils/assets.d.ts +2 -0
  57. package/dist/lib/utils/clipboard.d.ts +2 -0
  58. package/dist/lib/utils/iframe-resizer.d.ts +10 -0
  59. package/dist/lib/utils/placeholder.d.ts +12 -0
  60. package/dist/lib/utils/placeholderTypes.d.ts +18 -0
  61. package/dist/lib/utils/strings.d.ts +1 -0
  62. package/lib/components/AccordionStep.vue +53 -42
  63. package/lib/components/AccordionWrapper.vue +25 -24
  64. package/lib/components/ActiveTextTruncate.vue +44 -22
  65. package/lib/components/AdvancedLinkForm.vue +96 -46
  66. package/lib/components/Brand.vue +30 -23
  67. package/lib/components/BrandExpansion.vue +12 -3
  68. package/lib/components/ConfirmButton.vue +30 -26
  69. package/lib/components/ContentPlaceholder.vue +11 -7
  70. package/lib/components/CustomPagination.vue +50 -32
  71. package/lib/components/DigitsInput.vue +64 -60
  72. package/lib/components/DonateForm.vue +112 -83
  73. package/lib/components/EmbedForm.vue +37 -21
  74. package/lib/components/EmbeddableFooter.vue +14 -10
  75. package/lib/components/FollowUsPopover.vue +42 -40
  76. package/lib/components/GenericFooter.vue +98 -23
  77. package/lib/components/GenericHeader.vue +66 -29
  78. package/lib/components/HapticCopy.vue +41 -29
  79. package/lib/components/ImddbHeader.vue +113 -92
  80. package/lib/components/OrdinalLegend.vue +43 -20
  81. package/lib/components/RangePicker.vue +63 -42
  82. package/lib/components/ResponsiveIframe.vue +9 -2
  83. package/lib/components/ScaleLegend.vue +56 -18
  84. package/lib/components/SecretInput.vue +7 -8
  85. package/lib/components/SelectableDropdown.vue +119 -74
  86. package/lib/components/SharingOptions.vue +93 -36
  87. package/lib/components/SharingOptionsLink.vue +11 -5
  88. package/lib/components/SignUpForm.vue +44 -23
  89. package/lib/components/SlideUpDown.vue +7 -2
  90. package/lib/components/TexturedDeck.vue +24 -14
  91. package/lib/components/TinyPagination.vue +35 -22
  92. package/lib/composables/chart.ts +174 -157
  93. package/lib/composables/resizeObserver.ts +29 -29
  94. package/lib/composables/sendEmail.ts +53 -42
  95. package/lib/config.default.ts +17 -10
  96. package/lib/config.ts +34 -27
  97. package/lib/datavisualisations/BarChart.vue +48 -42
  98. package/lib/datavisualisations/ColumnChart.vue +133 -89
  99. package/lib/datavisualisations/LineChart.vue +79 -57
  100. package/lib/datavisualisations/StackedBarChart.vue +116 -68
  101. package/lib/datavisualisations/StackedColumnChart.vue +196 -115
  102. package/lib/enums.ts +25 -15
  103. package/lib/i18n.ts +3 -3
  104. package/lib/keys.ts +2 -2
  105. package/lib/main.ts +14 -10
  106. package/lib/maps/ChoroplethMap.vue +299 -160
  107. package/lib/maps/ChoroplethMapAnnotation.vue +29 -18
  108. package/lib/maps/SymbolMap.vue +194 -123
  109. package/lib/shims-bootstrap-vue.d.ts +1 -1
  110. package/lib/shims-vue.d.ts +3 -3
  111. package/lib/styles/functions.scss +10 -6
  112. package/lib/styles/lib.scss +2 -4
  113. package/lib/styles/mixins.scss +8 -8
  114. package/lib/styles/utilities.scss +1 -1
  115. package/lib/styles/variables.scss +24 -18
  116. package/lib/types.ts +26 -10
  117. package/lib/utils/animation.ts +4 -4
  118. package/lib/utils/assets.ts +31 -28
  119. package/lib/utils/clipboard.ts +16 -10
  120. package/lib/utils/iframe-resizer.ts +18 -13
  121. package/lib/utils/placeholder.ts +54 -23
  122. package/lib/utils/placeholderTypes.ts +3 -3
  123. package/package.json +21 -2
  124. package/.github/workflows/deploy-github-pages.yaml +0 -50
  125. package/.storybook/app.scss +0 -14
  126. package/.storybook/doc_variables.scss +0 -20
  127. package/.storybook/main.ts +0 -35
  128. package/.storybook/preview-head.html +0 -2
  129. package/.storybook/preview.ts +0 -32
  130. package/deploy.js +0 -15
  131. package/docs/components/ApiTable.vue +0 -171
  132. package/docs/components/App.vue +0 -146
  133. package/docs/components/CollapsibleBlock.vue +0 -122
  134. package/docs/components/DocsHeader.vue +0 -68
  135. package/docs/components/DocsMenu.vue +0 -201
  136. package/docs/components/DocsMenuSection.vue +0 -109
  137. package/docs/components/EditLink.vue +0 -49
  138. package/docs/components/OutboundLink.vue +0 -13
  139. package/docs/components/PalettePresenter.vue +0 -96
  140. package/docs/components/RepositoryLink.vue +0 -28
  141. package/docs/components/SampleCard.vue +0 -119
  142. package/docs/main.js +0 -42
  143. package/docs/pages/components/accordion/doc.md +0 -96
  144. package/docs/pages/components/active-text-truncate/doc.md +0 -44
  145. package/docs/pages/components/advanced-link-form/doc.md +0 -105
  146. package/docs/pages/components/brand/doc.md +0 -30
  147. package/docs/pages/components/brand-expansion/doc.md +0 -70
  148. package/docs/pages/components/confirm-button/doc.md +0 -91
  149. package/docs/pages/components/content-placeholder/doc.md +0 -16
  150. package/docs/pages/components/custom-pagination/doc.md +0 -61
  151. package/docs/pages/components/digits-input/doc.md +0 -28
  152. package/docs/pages/components/donate-form/doc.md +0 -20
  153. package/docs/pages/components/embed-form/doc.md +0 -22
  154. package/docs/pages/components/embeddable-footer/doc.md +0 -60
  155. package/docs/pages/components/follow-us-popover/doc.md +0 -5
  156. package/docs/pages/components/generic-footer/doc.md +0 -21
  157. package/docs/pages/components/generic-header/doc.md +0 -24
  158. package/docs/pages/components/haptic-copy/doc.md +0 -27
  159. package/docs/pages/components/imddb-header/doc.md +0 -23
  160. package/docs/pages/components/ordinal-legend/doc.md +0 -44
  161. package/docs/pages/components/range-picker/doc.md +0 -86
  162. package/docs/pages/components/responsive-iframe/doc.md +0 -13
  163. package/docs/pages/components/scale-legend/doc.md +0 -65
  164. package/docs/pages/components/secret-input/doc.md +0 -12
  165. package/docs/pages/components/selectable-dropdown/doc.md +0 -156
  166. package/docs/pages/components/sharing-options/doc.md +0 -13
  167. package/docs/pages/components/sharing-options-link/doc.md +0 -36
  168. package/docs/pages/components/sign-up-form/doc.md +0 -13
  169. package/docs/pages/components/slide-up-down/doc.md +0 -28
  170. package/docs/pages/components/textured-deck/doc.md +0 -78
  171. package/docs/pages/components/tiny-pagination/doc.md +0 -92
  172. package/docs/pages/datavisualisation/bars/doc.md +0 -110
  173. package/docs/pages/datavisualisation/columns/doc.md +0 -165
  174. package/docs/pages/datavisualisation/lines/doc.md +0 -139
  175. package/docs/pages/datavisualisation/stacked-bar/doc.md +0 -160
  176. package/docs/pages/datavisualisation/stacked-column/doc.md +0 -191
  177. package/docs/pages/getting-started/about-icij/doc.md +0 -13
  178. package/docs/pages/getting-started/custom-bootstrap/doc.md +0 -36
  179. package/docs/pages/getting-started/installation-guide/doc.md +0 -59
  180. package/docs/pages/getting-started/internationalization/doc.md +0 -74
  181. package/docs/pages/maps/choropleth-map/doc.md +0 -420
  182. package/docs/pages/maps/choropleth-map-annotation/doc.md +0 -373
  183. package/docs/pages/maps/symbol-map/doc.md +0 -203
  184. package/docs/pages/structure/breakpoints/doc.md +0 -3
  185. package/docs/pages/structure/grid/doc.md +0 -3
  186. package/docs/pages/utilities/assets/doc.md +0 -138
  187. package/docs/pages/utilities/config/doc.md +0 -52
  188. package/docs/pages/utilities/iframes/doc.md +0 -3
  189. package/docs/pages/visual/colors/doc.md +0 -31
  190. package/docs/pages/visual/iconography/doc.md +0 -56
  191. package/docs/pages/visual/states/doc.md +0 -77
  192. package/docs/pages/visual/themes/doc.md +0 -3
  193. package/docs/pages/visual/typography/doc.md +0 -71
  194. package/docs/routes.js +0 -25
  195. package/docs/store/index.js +0 -21
  196. package/docs/styles/app.scss +0 -36
  197. package/docs/styles/variables.scss +0 -20
  198. package/loaders/highlight-loader.js +0 -13
  199. package/loaders/markdown-loader.js +0 -91
  200. package/loaders/metadata-loader.js +0 -18
  201. package/loaders/sass-extract-loader.js +0 -14
  202. package/loaders/vue-docgen-loader.js +0 -14
  203. package/plugins/MdPluginTypes.ts +0 -10
  204. package/plugins/docs.ts +0 -50
  205. package/plugins/front-matter.ts +0 -36
  206. package/plugins/highlight.ts +0 -27
  207. package/plugins/markdown-it/api-table.ts +0 -25
  208. package/plugins/markdown-it/sample-card.ts +0 -31
  209. package/plugins/plugin-delete.ts +0 -47
  210. package/plugins/plugin-docgen.ts +0 -23
  211. package/plugins/sass-vars.ts +0 -25
  212. package/plugins/vue-docgen.ts +0 -29
  213. package/public/android-chrome-192x192.png +0 -0
  214. package/public/android-chrome-512x512.png +0 -0
  215. package/public/apple-touch-icon.png +0 -0
  216. package/public/assets/img/arrow-bottom.svg +0 -3
  217. package/public/assets/img/texture-brick-black.jpg +0 -0
  218. package/public/assets/img/texture-brick.jpg +0 -0
  219. package/public/assets/img/texture-carbon-black.jpg +0 -0
  220. package/public/assets/img/texture-carbon.jpg +0 -0
  221. package/public/assets/img/texture-crack-black.jpg +0 -0
  222. package/public/assets/img/texture-crack.jpg +0 -0
  223. package/public/assets/img/texture-rock-black.jpg +0 -0
  224. package/public/assets/img/texture-rock.jpg +0 -0
  225. package/public/assets/img/texture-sand-black.jpg +0 -0
  226. package/public/assets/img/texture-sand.jpg +0 -0
  227. package/public/assets/img/texture-silk-black.jpg +0 -0
  228. package/public/assets/img/texture-silk.jpg +0 -0
  229. package/public/assets/topojson/france-departments.json +0 -1
  230. package/public/assets/topojson/paris-arrondissements.json +0 -1
  231. package/public/assets/topojson/world-countries-sans-antarctica.json +0 -1
  232. package/public/favicon-16x16.png +0 -0
  233. package/public/favicon-32x32.png +0 -0
  234. package/public/favicon.ico +0 -0
  235. package/public/site.webmanifest +0 -1
  236. package/stories/assets/code-brackets.svg +0 -1
  237. package/stories/assets/colors.svg +0 -1
  238. package/stories/assets/comments.svg +0 -1
  239. package/stories/assets/direction.svg +0 -1
  240. package/stories/assets/flow.svg +0 -1
  241. package/stories/assets/plugin.svg +0 -1
  242. package/stories/assets/repo.svg +0 -1
  243. package/stories/assets/stackalt.svg +0 -1
  244. package/stories/getting-started/about-icij.mdx +0 -14
  245. package/stories/getting-started/custom-bootstrap.mdx +0 -23
  246. package/stories/getting-started/installation-guide.mdx +0 -62
  247. package/stories/getting-started/internationalization.mdx +0 -63
  248. package/stories/murmur/components/AccordionStep.stories.ts +0 -33
  249. package/stories/murmur/components/AccordionWrapper.stories.ts +0 -69
  250. package/stories/murmur/components/ActiveTextTruncate.stories.ts +0 -32
  251. package/stories/murmur/components/AdvancedLinkForm.stories.ts +0 -77
  252. package/stories/murmur/components/Brand.stories.ts +0 -30
  253. package/stories/murmur/components/BrandExpansion.stories.ts +0 -41
  254. package/stories/murmur/components/ConfirmButton.stories.ts +0 -40
  255. package/stories/murmur/components/ContentPlaceholder.stories.ts +0 -41
  256. package/stories/murmur/components/CustomPagination.stories.ts +0 -42
  257. package/stories/murmur/components/DigitsInput.stories.ts +0 -29
  258. package/stories/murmur/components/DonateForm.stories.ts +0 -29
  259. package/stories/murmur/components/EmbedForm.stories.ts +0 -35
  260. package/stories/murmur/components/EmbeddableFooter.stories.ts +0 -59
  261. package/stories/murmur/components/FollowUsPopover.stories.ts +0 -24
  262. package/stories/murmur/components/GenericFooter.stories.ts +0 -27
  263. package/stories/murmur/components/GenericHeader.stories.ts +0 -27
  264. package/stories/murmur/components/HapticCopy.stories.ts +0 -40
  265. package/stories/murmur/components/ImddbHeader.stories.ts +0 -27
  266. package/stories/murmur/components/OrdinalLegend.stories.ts +0 -49
  267. package/stories/murmur/components/RangePicker.stories.ts +0 -98
  268. package/stories/murmur/components/ResponsiveIframe.stories.ts +0 -24
  269. package/stories/murmur/components/ScaleLegend.stories.ts +0 -65
  270. package/stories/murmur/components/SecretInput.stories.ts +0 -60
  271. package/stories/murmur/components/SelectableDropdown.stories.ts +0 -143
  272. package/stories/murmur/components/SharingOptions.stories.ts +0 -32
  273. package/stories/murmur/components/SharingOptionsLink.stories.ts +0 -53
  274. package/stories/murmur/components/SignUpForm.stories.ts +0 -51
  275. package/stories/murmur/components/SlideUpDown.stories.ts +0 -32
  276. package/stories/murmur/components/TexturedDeck.stories.ts +0 -83
  277. package/stories/murmur/components/TinyPagination.stories.ts +0 -65
  278. package/stories/murmur/datavisualisations/BarChart.stories.ts +0 -54
  279. package/stories/murmur/datavisualisations/ColumnChart.stories.ts +0 -88
  280. package/stories/murmur/datavisualisations/LineChart.stories.ts +0 -139
  281. package/stories/murmur/datavisualisations/StackedBarChart.stories.ts +0 -199
  282. package/stories/murmur/datavisualisations/StackedColumnChart.stories.ts +0 -136
  283. package/stories/murmur/decorators.ts +0 -108
  284. package/stories/murmur/maps/ChoroplethMap.stories.ts +0 -440
  285. package/stories/murmur/maps/ChoroplethMapAnnotation.stories.ts +0 -26
  286. package/stories/murmur/maps/SymbolMap.stories.ts +0 -24
  287. package/stories/murmur/utils.ts +0 -7
  288. package/tests/unit/components/AccordionStep.spec.ts +0 -157
  289. package/tests/unit/components/AccordionWrapper.spec.ts +0 -57
  290. package/tests/unit/components/ActiveTextTruncate.spec.js +0 -30
  291. package/tests/unit/components/AdvancedLinkForm.spec.js +0 -124
  292. package/tests/unit/components/Brand.spec.js +0 -50
  293. package/tests/unit/components/ContentPlaceholder.spec.js +0 -29
  294. package/tests/unit/components/CustomPagination.spec.js +0 -72
  295. package/tests/unit/components/DigitsInput.spec.ts +0 -157
  296. package/tests/unit/components/DonateForm.spec.js +0 -149
  297. package/tests/unit/components/EmbedForm.spec.js +0 -108
  298. package/tests/unit/components/EmbeddableFooter.spec.js +0 -11
  299. package/tests/unit/components/Fa.spec.js +0 -18
  300. package/tests/unit/components/FollowUsPopover.spec.js +0 -29
  301. package/tests/unit/components/GenericFooter.spec.js +0 -29
  302. package/tests/unit/components/GenericHeader.spec.js +0 -104
  303. package/tests/unit/components/HapticCopy.spec.js +0 -123
  304. package/tests/unit/components/ImddbHeader.spec.js +0 -96
  305. package/tests/unit/components/OrdinalLegend.spec.js +0 -120
  306. package/tests/unit/components/RangePicker.spec.ts +0 -87
  307. package/tests/unit/components/ResponsiveIframe.spec.js +0 -20
  308. package/tests/unit/components/ScaleLegend.spec.js +0 -139
  309. package/tests/unit/components/SecretInput.spec.js +0 -81
  310. package/tests/unit/components/SelectableDropdown.spec.js +0 -160
  311. package/tests/unit/components/SharingOptions.spec.js +0 -125
  312. package/tests/unit/components/SharingOptionsLink.spec.js +0 -184
  313. package/tests/unit/components/SignUpForm.spec.js +0 -145
  314. package/tests/unit/components/SlideUpDown.spec.js +0 -59
  315. package/tests/unit/components/TinyPagination.spec.js +0 -46
  316. package/tests/unit/config.spec.js +0 -136
  317. package/tests/unit/datavisualisations/BarChart.spec.js +0 -63
  318. package/tests/unit/datavisualisations/ColumnChart.spec.js +0 -344
  319. package/tests/unit/datavisualisations/LineChart.spec.js +0 -155
  320. package/tests/unit/datavisualisations/StackedBarChart.spec.js +0 -294
  321. package/tests/unit/datavisualisations/StackedColumnChart.spec.js +0 -443
  322. package/tests/unit/i18n.spec.ts +0 -19
  323. package/tests/unit/main.spec.js +0 -82
  324. package/tests/unit/maps/ChoroplethMap.spec.js +0 -214
  325. package/tests/unit/maps/ChoroplethMapAnnotation.spec.ts +0 -186
  326. package/tests/unit/maps/SymbolMap.spec.js +0 -92
  327. package/tests/unit/require.spec.js +0 -22
  328. package/tests/unit/setup.js +0 -13
  329. package/tests/unit/utils/assets.spec.js +0 -61
  330. package/tests/unit/utils/clipboard.spec.js +0 -18
  331. package/tests/unit/utils/iframe-resizer.spec.js +0 -71
  332. package/tsconfig.json +0 -35
  333. package/vite.config.ts +0 -79
  334. package/vitest.config.ts +0 -19
@@ -1,157 +0,0 @@
1
- import {mount, shallowMount} from "@vue/test-utils";
2
- import AccordionStep from "@/components/AccordionStep.vue";
3
- import {AccordionKey} from "@/keys";
4
-
5
-
6
- import type {Accordion, AccordionProvide} from "@/types";
7
- import {Mocked} from "vitest";
8
-
9
- let mockAccordion: Mocked<Accordion>
10
- describe('AccordionStep', () => {
11
- // Stubs Bootstrap Vue components
12
- const stubs = {'b-card': true, 'b-collapse': true, 'b-button': true}
13
- const step = Symbol("Accordion")
14
- const steps = [step, Symbol("step2")]
15
-
16
-
17
- let provide: AccordionProvide
18
-
19
-
20
- beforeAll(() => {
21
- mockAccordion = {
22
- step,
23
- steps,
24
- isActiveStep: vi.fn(),
25
- isPreviousStep: vi.fn(),
26
- isFirstStep: vi.fn(),
27
- isLastStep: vi.fn(),
28
- emitAccordionPreviousStepEvent: vi.fn(),
29
- emitAccordionNextStepEvent: vi.fn()
30
- }
31
- provide = {
32
- [AccordionKey]: mockAccordion
33
- }
34
- })
35
- beforeEach(() => {
36
- mockAccordion.isActiveStep.mockClear()
37
- mockAccordion.isPreviousStep.mockClear()
38
- mockAccordion.isFirstStep.mockClear()
39
- mockAccordion.isLastStep.mockClear()
40
- mockAccordion.emitAccordionPreviousStepEvent.mockClear()
41
- mockAccordion.emitAccordionNextStepEvent.mockClear()
42
- })
43
-
44
- describe('should display a title ', () => {
45
- it('using title property', () => {
46
- const propsData = {step, title: 'Titre'}
47
- const wrapper = shallowMount(AccordionStep, {
48
- propsData,
49
- global: {provide, stubs, renderStubDefaultSlot: true}
50
- })
51
- const element = wrapper.find(".accordion-wrapper__content__step__heading")
52
- expect(element.text()).toBe('Titre')
53
-
54
- })
55
- it('using slot named title', () => {
56
- const propsData = {step}
57
- const wrapper = shallowMount(AccordionStep, {
58
- propsData, global: {provide, renderStubDefaultSlot: true}, slots: {title: '<div>Titre test</div>'}
59
- })
60
- const element = wrapper.find(".accordion-wrapper__content__step__heading")
61
- expect(element.text()).toBe('Titre test')
62
-
63
- })
64
- })
65
- describe('should display a content ', () => {
66
- it('using content property', () => {
67
- const propsData = {step, content: 'content to show'}
68
- const wrapper = shallowMount(AccordionStep, {
69
- propsData,
70
- global: {provide, stubs, renderStubDefaultSlot: true}
71
- })
72
- const element = wrapper.find(".accordion-wrapper__content__step__main")
73
- expect(element.text()).toBe('content to show')
74
-
75
- })
76
- it('using slot named content', () => {
77
- const propsData = {step}
78
- const wrapper = shallowMount(AccordionStep, {
79
- propsData,
80
- global: {provide, stubs, renderStubDefaultSlot: true},
81
- slots: {content: '<div>content to show in slot</div>'}
82
- })
83
- const element = wrapper.find(".accordion-wrapper__content__step__main")
84
- expect(element.text()).toBe('content to show in slot')
85
- })
86
- })
87
- describe('display status class', () => {
88
- describe('when the step is active', () => {
89
-
90
- it('should have the class --active', async () => {
91
- mockAccordion.isActiveStep.mockReturnValueOnce(false)
92
- const propsData = {step}
93
- let wrapper = mount(AccordionStep,
94
- {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
95
-
96
- const notActiveElement = wrapper.find('.accordion-wrapper__content__step--active')
97
- expect(notActiveElement.exists()).toBeFalsy()
98
-
99
- mockAccordion.isActiveStep.mockReturnValueOnce(true)
100
- wrapper = mount(AccordionStep, {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
101
- const activeElement = wrapper.find('.accordion-wrapper__content__step--active')
102
- expect(activeElement.exists()).toBeTruthy()
103
- })
104
- it('the content should be visible', async () => {
105
- mockAccordion.isActiveStep.mockReturnValueOnce(false)
106
- const propsData = {step}
107
- let wrapper = mount(AccordionStep, {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
108
-
109
- const notActiveElement = wrapper.find('.accordion-wrapper__content__step b-collapse-stub')
110
- expect(notActiveElement.attributes().visible).toBe("false")
111
-
112
- mockAccordion.isActiveStep.mockReturnValueOnce(true)
113
- wrapper = mount(AccordionStep, {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
114
- const activeElement = wrapper.find('.accordion-wrapper__content__step b-collapse-stub')
115
- expect(activeElement.attributes().visible).toBe("true")
116
- })
117
-
118
- })
119
-
120
- it('when the step is the previous one', async () => {
121
- mockAccordion.isPreviousStep.mockReturnValueOnce(false)
122
- const propsData = {step}
123
- let wrapper = mount(AccordionStep, {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
124
-
125
- const notActiveElement = wrapper.find('.accordion-wrapper__content__step--previous')
126
- expect(notActiveElement.exists()).toBeFalsy()
127
-
128
- mockAccordion.isPreviousStep.mockReturnValueOnce(true)
129
- wrapper = mount(AccordionStep, {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
130
- const activeElement = wrapper.find('.accordion-wrapper__content__step--previous')
131
- expect(activeElement.exists()).toBeTruthy()
132
- })
133
- })
134
-
135
- describe('action buttons', () => {
136
- it('displays a back button', async () => {
137
- const propsData = {step}
138
- const wrapper = shallowMount(AccordionStep, {
139
- propsData,
140
- global: {provide, stubs, renderStubDefaultSlot: true}
141
- })
142
- const element = wrapper.find('.accordion-wrapper__content__step__back-button')
143
- expect(element.exists()).toBeTruthy()
144
- await element.trigger('click')
145
- expect(wrapper.emitted()).toHaveProperty('previous-step')
146
- })
147
-
148
- it('displays a next button', async () => {
149
- const propsData = {step}
150
- const wrapper = mount(AccordionStep, {propsData, global: {provide, stubs, renderStubDefaultSlot: true}})
151
- const element = wrapper.find('.accordion-wrapper__content__step__continue-button')
152
- expect(element.exists()).toBeTruthy()
153
- await element.trigger('click')
154
- expect(wrapper.emitted()).toHaveProperty('next-step')
155
- })
156
- })
157
- })
@@ -1,57 +0,0 @@
1
- import { mount, shallowMount } from "@vue/test-utils";
2
-
3
- import type { Step } from "@/types";
4
- import AccordionWrapper from "@/components/AccordionWrapper.vue";
5
- describe('AccordionStep', () => {
6
- // Stubs Bootstrap Vue components
7
- const step1: Step = "step1"
8
- const step2: Step = Symbol("step2")
9
- const step3: Step = Symbol("step3")
10
-
11
- const steps: Step[] = [step1, step2, step3]
12
- describe('should update the current step ', () => {
13
-
14
- it('has step2 has current step', () => {
15
- const propsData = { step: step2, steps }
16
- const wrapper = shallowMount(AccordionWrapper, { propsData })
17
- expect(wrapper.exists()).toBeTruthy()
18
- expect(wrapper.vm.isActiveStep(step2)).toBe(true)
19
-
20
- })
21
- it('has step1 has first step', () => {
22
- const propsData = { step: step1, steps }
23
- const wrapper = shallowMount(AccordionWrapper , { propsData })
24
- expect(wrapper.vm.isFirstStep(step1)).toBe(true)
25
- })
26
-
27
- it('has step3 has last step', () => {
28
- const propsData = { step: step3, steps }
29
- const wrapper = shallowMount(AccordionWrapper, { propsData })
30
- expect(wrapper.vm.isLastStep(step3)).toBe(true)
31
- })
32
- it('changes from step1 to step2', async () => {
33
- const propsData = { step: step1, steps }
34
- const wrapper = shallowMount(AccordionWrapper, { propsData })
35
- expect(wrapper.vm.isActiveStep(step1)).toBe(true)
36
- wrapper.vm.emitAccordionNextStepEvent()
37
- expect(wrapper.emitted()).toHaveProperty('step-change')
38
- const actual = wrapper.emitted('step-change')?.[0][0]
39
- expect(actual).toEqual(step2)
40
- })
41
- it('changes from step2 to step1', async () => {
42
- const propsData = { step: step2, steps }
43
- const wrapper = mount(AccordionWrapper, { propsData })
44
- expect(wrapper.vm.isActiveStep(step2)).toBe(true)
45
- wrapper.vm.emitAccordionPreviousStepEvent()
46
- expect(wrapper.emitted()).toHaveProperty('step-change')
47
- const actual = wrapper.emitted('step-change')?.[0][0]
48
- expect(actual).toEqual(step1)
49
- await wrapper.setProps({ step: step1 })
50
- wrapper.vm.emitAccordionPreviousStepEvent()
51
- const actual2 = wrapper.emitted('step-change')?.[1][0]
52
- expect(actual2).toEqual(step1)
53
- })
54
-
55
- })
56
-
57
- })
@@ -1,30 +0,0 @@
1
- import { shallowMount } from '@vue/test-utils'
2
- import ActiveTextTruncate from '@/components/ActiveTextTruncate.vue'
3
-
4
- // Mock HTML element offset so the size of the wrapper can be calculated
5
- // dynamically using JSDOM and tests
6
- Object.defineProperties(window.HTMLElement.prototype, {
7
- offsetWidth: {
8
- get () { return parseFloat(this.style.width) || 0 }
9
- }
10
- })
11
-
12
- describe('ActiveTextTruncate.vue', () => {
13
-
14
- it('should be a Vue instance', () => {
15
- const wrapper = shallowMount(ActiveTextTruncate)
16
- expect(wrapper.vm).toBeTruthy()
17
- })
18
-
19
- it('should display text in the default slot', () => {
20
- const slots = { default: ['Lorem ipsum dolor sit amet.'] }
21
- const wrapper = shallowMount(ActiveTextTruncate, { slots })
22
- expect(wrapper.text()).toBe('Lorem ipsum dolor sit amet.')
23
- })
24
-
25
- it('shoud wrap text', () => {
26
- const slots = { default: ['Lorem ipsum dolor sit amet.'] }
27
- const wrapper = shallowMount(ActiveTextTruncate, { slots })
28
- expect(wrapper.find('.active-text-truncate__wrapper__text').exists()).toBeTruthy()
29
- })
30
- })
@@ -1,124 +0,0 @@
1
- import MutationObserver from 'mutationobserver-shim'
2
- import { mount,flushPromises } from '@vue/test-utils'
3
- import AdvancedLinkForm from '@/components/AdvancedLinkForm.vue'
4
-
5
- describe('AdvancedLinkForm.vue', () => {
6
- const createContainer = (tag = 'div') => {
7
- const container = document.createElement(tag)
8
- document.body.appendChild(container)
9
- return container
10
- }
11
- const global = {stubs: {HapticCopy: true}}
12
- it('should be a Vue instance', () => {
13
- const wrapper = mount(AdvancedLinkForm, { global })
14
- expect(wrapper.vm).toBeTruthy()
15
- })
16
-
17
- it('should create 4 nav items (tabs) by default', async () => {
18
- const wrapper = mount(AdvancedLinkForm, { global })
19
- await wrapper.vm.$nextTick()
20
- expect(wrapper.findAll('.nav-item').length).toBe(4)
21
- })
22
-
23
- it('should create 4 pans by default, only one active', async () => {
24
- const wrapper = mount(AdvancedLinkForm, { global })
25
- await wrapper.vm.$nextTick()
26
- expect(wrapper.findAll('.tab-pane').length).toBe(4)
27
- expect(wrapper.findAll('.tab-pane.active').length).toBe(1)
28
- })
29
-
30
- it('should create a raw link input, active by default', async () => {
31
- const propsData = { link: 'https://www.icij.org', title: 'A Great Website' }
32
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
33
- await wrapper.vm.$nextTick()
34
- expect(wrapper.find('.tab-pane.active .advanced-link-form__raw__input').exists()).toBeTruthy()
35
- expect(wrapper.find('.advanced-link-form__raw__input').element._value).toBe(propsData.link)
36
- })
37
-
38
- it('should create switch between form using `modelValue` property', async () => {
39
- const wrapper = mount(AdvancedLinkForm, { global })
40
- await wrapper.vm.$nextTick()
41
- expect(wrapper.find('.tab-pane.active .advanced-link-form__raw').exists()).toBeTruthy()
42
- await wrapper.setProps({modelValue: 1})
43
- await flushPromises()
44
- expect(wrapper.find('.tab-pane.active .advanced-link-form__rich').exists()).toBeTruthy()
45
- await wrapper.setProps({modelValue: 2})
46
- await flushPromises()
47
- expect(wrapper.find('.tab-pane.active .advanced-link-form__markdown').exists()).toBeTruthy()
48
- })
49
-
50
- it('should create only 3 forms, markdown active by default ', async () => {
51
- const propsData = { forms: ['raw', 'markdown', 'html'], modelValue: 1 }
52
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
53
- await flushPromises()
54
- expect(wrapper.findAll('.tab-pane').length).toBe(3)
55
- expect(wrapper.find('.tab-pane.active .advanced-link-form__markdown').exists()).toBeTruthy()
56
- })
57
-
58
- it('should not use card by default', async () => {
59
- const wrapper = mount(AdvancedLinkForm, { global })
60
- await wrapper.vm.$nextTick()
61
- expect(wrapper.classes()).not.toContain('advanced-link-form--card')
62
- expect(wrapper.find('.nav').classes()).not.toContain('card-header-tabs')
63
- expect(wrapper.find('.tab-pane.active').classes()).not.toContain('card-body')
64
- })
65
-
66
- it('should use card when property is set', async () => {
67
- const propsData = { card: true }
68
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
69
- await wrapper.vm.$nextTick()
70
- expect(wrapper.classes()).toContain('advanced-link-form--card')
71
- expect(wrapper.find('.nav').classes()).toContain('card-header-tabs')
72
- expect(wrapper.find('.tab-pane.active').classes()).toContain('card-body')
73
- })
74
-
75
- it('should not use pills by default', () => {
76
- const wrapper = mount(AdvancedLinkForm, { global })
77
- expect(wrapper.classes()).not.toContain('advanced-link-form--pills')
78
- expect(wrapper.find('.nav').classes()).not.toContain('nav-pills')
79
- })
80
-
81
- it('should use pills when property is set', () => {
82
- const propsData = { pills: true }
83
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
84
- expect(wrapper.classes()).toContain('advanced-link-form--pills')
85
- expect(wrapper.find('.nav').classes()).toContain('nav-pills')
86
- })
87
-
88
- it('should not use small layout by default', () => {
89
- const wrapper = mount(AdvancedLinkForm, { global })
90
- expect(wrapper.classes()).not.toContain('advanced-link-form--small')
91
- })
92
-
93
- it('should use small layout when property is set', () => {
94
- const propsData = { small: true }
95
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
96
- expect(wrapper.classes()).toContain('advanced-link-form--small')
97
- })
98
-
99
- it('should not use vertical layout by default', () => {
100
- const wrapper = mount(AdvancedLinkForm, { global })
101
- expect(wrapper.classes()).not.toContain('advanced-link-form--vertical')
102
- })
103
-
104
- it('should use vertical layout when property is set', () => {
105
- const propsData = { vertical: true }
106
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
107
- expect(wrapper.classes()).toContain('advanced-link-form--vertical')
108
- })
109
-
110
- it('should use the title in markdown input', async () => {
111
- const propsData = { link: 'https://www.icij.org', title: 'A Great Website' }
112
- const markdown = `[${propsData.title}](${propsData.link})`
113
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
114
- await wrapper.vm.$nextTick()
115
- expect(wrapper.find('.advanced-link-form__markdown__input').element.value).toBe(markdown)
116
- })
117
-
118
- it('should use the title in rich input', () => {
119
- const propsData = { link: 'https://www.icij.org', title: 'A Great Website' }
120
- const wrapper = mount(AdvancedLinkForm, { propsData, global })
121
- expect(wrapper.find('.advanced-link-form__rich__input').text()).toBe(propsData.title)
122
- expect(wrapper.find('.advanced-link-form__rich__input').attributes('href')).toBe(propsData.link)
123
- })
124
- })
@@ -1,50 +0,0 @@
1
- import { shallowMount } from '@vue/test-utils'
2
- import Brand from '@/components/Brand.vue'
3
-
4
- describe('Brand.vue', () => {
5
-
6
- it('should be a Vue instance', () => {
7
- const wrapper = shallowMount(Brand)
8
- expect(wrapper.vm).toBeTruthy()
9
- })
10
-
11
- it('should generate a SVG', () => {
12
- const wrapper = shallowMount(Brand)
13
- expect(wrapper.find('svg').exists()).toBeTruthy()
14
- })
15
-
16
- it('should change logo color to red', () => {
17
- const color = "red"
18
- const propsData = { color }
19
- const wrapper = shallowMount(Brand, { propsData })
20
- expect(wrapper.element.style.color).toBe(color)
21
- })
22
-
23
- it('should change logo color to blue', () => {
24
- const color = "blue"
25
- const propsData = { color }
26
- const wrapper = shallowMount(Brand, { propsData })
27
- expect(wrapper.element.style.color).toBe(color)
28
- })
29
-
30
- it('should change logo color to #A10207', () => {
31
- const color = "rgb(161, 2, 7)"
32
- const propsData = { color }
33
- const wrapper = shallowMount(Brand, { propsData })
34
- expect(wrapper.element.style.color).toBe(color)
35
- })
36
-
37
- it('should change logo background to red', () => {
38
- const background = "red"
39
- const propsData = { background }
40
- const wrapper = shallowMount(Brand, { propsData })
41
- expect(wrapper.element.style.background).toBe(background)
42
- })
43
-
44
- it('should change logo background to rgb(161, 2, 7)', () => {
45
- const background = "rgb(161, 2, 7)"
46
- const propsData = { background }
47
- const wrapper = shallowMount(Brand, { propsData })
48
- expect(wrapper.element.style.background).toBe(background)
49
- })
50
- })
@@ -1,29 +0,0 @@
1
- import { shallowMount } from '@vue/test-utils'
2
- import ContentPlaceholder from '@/components/ContentPlaceholder.vue'
3
-
4
- describe('ContentPlaceholder.vue', () => {
5
-
6
- it('is a Vue instance', () => {
7
- const wrapper = shallowMount(ContentPlaceholder)
8
- expect(wrapper.vm).toBeTruthy()
9
- })
10
-
11
- it('renders props.rows when passed', () => {
12
- const rows = [
13
- {
14
- height: '1em',
15
- boxes: [ [0, 10], [0, 20] ]
16
- },
17
- {
18
- height: '1em',
19
- boxes: [ [0, 10] ]
20
- }
21
- ]
22
-
23
- const wrapper = shallowMount(ContentPlaceholder, {
24
- propsData: { rows }
25
- })
26
-
27
- expect(wrapper.findAll('.content-placeholder__wrapper__row').length).toBe(2)
28
- })
29
- })
@@ -1,72 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import CustomPagination from '@/components/CustomPagination.vue'
3
-
4
- describe('CustomPagination.vue', () => {
5
- it('is a Vue instance', () => {
6
- const wrapper = mount(CustomPagination)
7
- expect(wrapper.vm).toBeTruthy()
8
- })
9
-
10
- it('renders the pagination component', () => {
11
- const wrapper = mount(CustomPagination)
12
- expect(wrapper.find('.custom-pagination').exists()).toEqual(true)
13
- })
14
-
15
- it('expects totalRows, perPage, modelValue as props', () => {
16
- const propsData = { totalRows: 200, perPage: 20, modelValue: 2 }
17
- const wrapper = mount(CustomPagination, { propsData })
18
- expect(wrapper.vm.totalRows).toBe(200)
19
- expect(wrapper.vm.perPage).toBe(20)
20
- expect(wrapper.vm.modelValue).toBe(2)
21
- })
22
-
23
- it('accepts pills as a prop to change pagination styling', () => {
24
- const propsData = { pills: true }
25
- const wrapper = mount(CustomPagination, { propsData })
26
- expect(wrapper.vm.pills).toBeTruthy()
27
- })
28
-
29
- it('calculates numberOfPages based on the totalRows and perPage prop values', () => {
30
- const propsData = { totalRows: 200, perPage: 20 }
31
- const wrapper = mount(CustomPagination, { propsData })
32
- expect(wrapper.vm.numberOfPages).toBe(10)
33
- })
34
-
35
- it('emits an event on form submit with the currentPageInput', async () => {
36
- const propsData = { totalRows: 200, perPage: 20, }
37
- const wrapper = mount(CustomPagination, { propsData })
38
- const input = wrapper.find('.form-control')
39
- input.element.value = 3
40
- await input.trigger('input')
41
- wrapper.vm.customPaginationForm.dispatchEvent(new Event("submit"))
42
-
43
- expect(wrapper.emitted("update:modelValue")[0]).toContain(3)
44
- })
45
-
46
- it('does not emit an event if the currentPageInput is invalid', async () => {
47
- const propsData = { totalRows: 200, perPage: 20, }
48
- const wrapper = mount(CustomPagination, { propsData })
49
- expect(wrapper.vm.currentPageInput).toBe('')
50
- await wrapper.vm.applyJumpFormPage()
51
- expect(wrapper.emitted()).toMatchObject({})
52
- })
53
-
54
- it('sets errors if the currentPageInput is invalid', async () => {
55
- const propsData = { totalRows: 200, perPage: 20, }
56
- const wrapper = mount(CustomPagination, { propsData })
57
- expect(wrapper.vm.currentPageInput).toBe('')
58
- await wrapper.vm.applyJumpFormPage()
59
- await wrapper.vm.$nextTick()
60
- expect(wrapper.vm.errors.length).toBe(1)
61
- })
62
-
63
- it('renders an element containing the errors if the currentPageInput is invalid', async () => {
64
- const propsData = { totalRows: 200, perPage: 20, }
65
- const wrapper = mount(CustomPagination, { propsData })
66
- expect(wrapper.vm.currentPageInput).toBe('')
67
- await wrapper.vm.applyJumpFormPage()
68
- await wrapper.vm.$nextTick()
69
-
70
- expect(wrapper.find('#invalid-number-error').exists()).toEqual(true)
71
- })
72
- })