@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,443 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import StackedColumnChart from '@/datavisualisations/StackedColumnChart.vue'
3
-
4
- // Mock HTML element offset so the size of the chart can be calculated
5
- // dynamicly using JSDOM and tests
6
- Object.defineProperties(window.HTMLElement.prototype, {
7
- offsetWidth: {
8
- get () { return parseFloat(this.style.width) || 0 }
9
- },
10
- offsetHeight: {
11
- get () { return parseFloat(this.style.height) || 0 }
12
- }
13
- })
14
-
15
-
16
-
17
- describe('StackedColumnChart.vue', () => {
18
- const createContainer = (tag = 'div') => {
19
- const container = document.createElement(tag)
20
- document.body.appendChild(container)
21
- return container
22
- }
23
-
24
- describe('a stacked-colmuns chart with two columns in four groups and direct labeling', () => {
25
- let wrapper
26
-
27
- beforeEach(async () => {
28
- vi.useFakeTimers()
29
-
30
- const propsData = {
31
- highlightDelay: 2,
32
- data: [
33
- { date: 2006, foo: 90, bar: 10 },
34
- { date: 2007, foo: 80, bar: 10 },
35
- { date: 2008, foo: 70, bar: 10 },
36
- { date: 2009, foo: 60, bar: 10 }
37
- ]
38
- }
39
-
40
- wrapper = mount(StackedColumnChart, { propsData, attachTo: createContainer() })
41
- })
42
-
43
- afterEach(async () => {
44
- await vi.runAllTimersAsync()
45
- vi.useRealTimers()
46
- })
47
-
48
- it('is a Vue instance', () => {
49
- expect(wrapper.vm).toBeTruthy()
50
- })
51
-
52
- it('creates four columns', async () => {
53
- expect(wrapper.findAll('.stacked-column-chart__groups__item')).toHaveLength(4)
54
- })
55
-
56
- it('creates the first group of columns with maximum height', () => {
57
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
58
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
59
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
60
- const totalHeight = fooColumn.element.offsetHeight + barColumn.element.offsetHeight
61
- expect(totalHeight).toBe(100)
62
- })
63
-
64
- it('creates the second group of columns with ~90% height', () => {
65
- const secondGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(1)
66
- const fooColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
67
- const barColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
68
- const totalHeight = fooColumn.element.offsetHeight + barColumn.element.offsetHeight
69
- expect(totalHeight).toBe(90)
70
- })
71
-
72
- it('creates the third group of columns with ~80% height', () => {
73
- const secondGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(2)
74
- const fooColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
75
- const barColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
76
- const totalHeight = fooColumn.element.offsetHeight + barColumn.element.offsetHeight
77
- expect(totalHeight).toBe(80)
78
- })
79
-
80
- it('creates the first group of columns with `foo` taking 90% height', () => {
81
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
82
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
83
- const width = fooColumn.element.offsetHeight
84
- expect(width).toBe(90)
85
- })
86
-
87
- it('creates the first group of columns with `bar` taking 10% height', () => {
88
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
89
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
90
- const width = barColumn.element.offsetHeight
91
- expect(width).toBe(10)
92
- })
93
-
94
- it('creates the first group with "2006" as label', () => {
95
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
96
- const label = firstGroup.find('.stacked-column-chart__groups__item__label')
97
- expect(label.text()).toBe("2006")
98
- })
99
-
100
- it('creates the second group with "2007" as label', () => {
101
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(1)
102
- const label = firstGroup.find('.stacked-column-chart__groups__item__label')
103
- expect(label.text()).toBe("2007")
104
- })
105
-
106
- it('creates the first group with "2009" as label when ordered by "foo"', async () => {
107
- await wrapper.setProps({ sortBy: 'foo' })
108
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
109
- const label = firstGroup.find('.stacked-column-chart__groups__item__label')
110
- expect(label.text()).toBe("2009")
111
- })
112
-
113
- it('creates a legend with "foo" and "bar" items', () => {
114
- const fooLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(0)
115
- const barLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(1)
116
- expect(fooLegend.text()).toBe("foo")
117
- expect(barLegend.text()).toBe("bar")
118
- })
119
-
120
- it('hightlight the legend "foo"', async () => {
121
- const fooLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(0)
122
- expect(fooLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeFalsy()
123
- await fooLegend.trigger('mouseover')
124
- await vi.advanceTimersByTimeAsync(wrapper.vm.highlightDelay + 10)
125
- expect(fooLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeTruthy()
126
- })
127
-
128
- it('hightlight the columns for "foo"', async () => {
129
- const fooLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(0)
130
- await fooLegend.trigger('mouseover')
131
- await vi.advanceTimersByTimeAsync(wrapper.vm.highlightDelay)
132
- const fooColumns = wrapper.findAll('.stacked-column-chart__groups__item__bars__item--foo')
133
- expect(fooColumns.at(0).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
134
- expect(fooColumns.at(1).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
135
- expect(fooColumns.at(2).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
136
- expect(fooColumns.at(3).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
137
- })
138
-
139
- it('hightlight the columns for "bar"', async () => {
140
- const barLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(1)
141
- await barLegend.trigger('mouseover')
142
- await vi.advanceTimersByTimeAsync(wrapper.vm.highlightDelay)
143
- const budgetBars = wrapper.findAll('.stacked-column-chart__groups__item__bars__item--bar')
144
- expect(budgetBars.at(0).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
145
- expect(budgetBars.at(1).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
146
- expect(budgetBars.at(2).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
147
- expect(budgetBars.at(3).classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
148
- })
149
-
150
- it('hightlight the legend "foo" on mouseover and "bar" by default', async () => {
151
- await wrapper.setProps({ highlights: ['bar'] })
152
- const fooLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(0)
153
- const barLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(1)
154
- expect(fooLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeFalsy()
155
- expect(barLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeTruthy()
156
- await fooLegend.trigger('mouseover')
157
- await vi.advanceTimersByTimeAsync(wrapper.vm.highlightDelay)
158
- expect(fooLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeTruthy()
159
- expect(barLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeFalsy()
160
- })
161
-
162
- it('hightlight the columns for "bar" after a while', async () => {
163
- const barLegend = wrapper.findAll('.stacked-column-chart__legend__item').at(1)
164
- await wrapper.setProps({ highlightDelay: 150 })
165
- await barLegend.trigger('mouseover')
166
- expect(barLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeFalsy()
167
- await vi.advanceTimersByTimeAsync(wrapper.vm.highlightDelay / 2)
168
- expect(barLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeFalsy()
169
- await vi.advanceTimersByTimeAsync(wrapper.vm.highlightDelay * 2)
170
- expect(barLegend.classes('stacked-column-chart__legend__item--highlighted')).toBeTruthy()
171
- })
172
-
173
- it('hightlight the whole "2006" column', async () => {
174
- await wrapper.setProps({ columnHighlights: [2006] })
175
- const foo = wrapper.findAll('.stacked-column-chart__groups__item__bars__item').at(0)
176
- const bar = wrapper.findAll('.stacked-column-chart__groups__item__bars__item').at(1)
177
- expect(foo.classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
178
- expect(bar.classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
179
- })
180
-
181
- it('hightlight the whole "2009" column', async () => {
182
- await wrapper.setProps({ columnHighlights: [2009] })
183
- const foo = wrapper.findAll('.stacked-column-chart__groups__item__bars__item').at(6)
184
- const bar = wrapper.findAll('.stacked-column-chart__groups__item__bars__item').at(7)
185
- expect(foo.classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
186
- expect(bar.classes('stacked-column-chart__groups__item__bars__item--highlighted')).toBeTruthy()
187
- })
188
-
189
- it('creates columns with specific colors', async () => {
190
- await wrapper.setProps({ barColors: [ "#000", "#444" ] })
191
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
192
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
193
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
194
- expect(fooColumn.element.style['background-color']).toBe('rgb(0, 0, 0)')
195
- expect(barColumn.element.style['background-color']).toBe('rgb(68, 68, 68)')
196
- })
197
-
198
- it('creates legend with specific colors', async () => {
199
- await wrapper.setProps({ barColors: [ "#000", "#444" ] })
200
- const legendBoxes = wrapper.findAll('.stacked-column-chart__legend__item__box')
201
- const budgetBox = legendBoxes.at(0)
202
- const boxOfficeBox = legendBoxes.at(1)
203
- expect(budgetBox.element.style['background-color']).toBe('rgb(0, 0, 0)')
204
- expect(boxOfficeBox.element.style['background-color']).toBe('rgb(68, 68, 68)')
205
- })
206
-
207
- it('creates one legend when using explicite keys', async () => {
208
- await wrapper.setProps({ keys: [ "foo" ] })
209
- const legendItems = wrapper.findAll('.stacked-column-chart__legend__item')
210
- expect(legendItems).toHaveLength(1)
211
- })
212
-
213
- it('creates one bar when using explicite keys', async () => {
214
- await wrapper.setProps({ keys: [ "foo" ] })
215
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
216
- const columns = firstGroup.findAll('.stacked-column-chart__groups__item__bars__item')
217
- expect(columns).toHaveLength(1)
218
- })
219
-
220
- it('creates legend with custom group names', async () => {
221
- await wrapper.setProps({ groups: [ "Foo", "Bar" ] })
222
- const legendItems = wrapper.findAll('.stacked-column-chart__legend__item')
223
- expect(legendItems.at(0).text()).toBe("Foo")
224
- expect(legendItems.at(1).text()).toBe("Bar")
225
- })
226
-
227
- it('creates bar direct labeling without formatting', async () => {
228
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
229
- const values = firstGroup.findAll('.stacked-column-chart__groups__item__bars__item__value')
230
- expect(values.at(0).text()).toBe('90')
231
- expect(values.at(1).text()).toBe('10')
232
- })
233
-
234
- it('creates bar direct labeling without with currency formatting', async () => {
235
- await wrapper.setProps({ yAxisTickFormat: '$,' })
236
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
237
- const values = firstGroup.findAll('.stacked-column-chart__groups__item__bars__item__value')
238
- expect(values.at(0).text()).toBe('$90')
239
- expect(values.at(1).text()).toBe('$10')
240
- })
241
-
242
- it('creates an invisible left axis', async () => {
243
- const leftAxis = wrapper.find('.stacked-column-chart__left-axis')
244
- expect(leftAxis.attributes('style')).toBe('display: none;')
245
- })
246
- })
247
-
248
- describe('a stacked-colmuns chart with 3 columns in 2 groups and no direct labeling', () => {
249
-
250
- let wrapper
251
-
252
- beforeEach(async () => {
253
-
254
- const propsData = {
255
- labelField: 'label',
256
- noDirectLabeling: true,
257
- fixedHeight: 500,
258
- barMaxWidth: '50%',
259
- data: [
260
- { label: 'today', foo: 90, bar: 5, baz: 5 },
261
- { label: 'tomorrow', foo: 40, bar: 10, baz: 0 }
262
- ]
263
- }
264
-
265
- const attrs = {
266
- style: 'width: 600px'
267
- }
268
-
269
- wrapper = mount(StackedColumnChart, { propsData, attachTo: createContainer(), attrs })
270
- })
271
-
272
- it('is a Vue instance', () => {
273
- expect(wrapper.vm).toBeTruthy()
274
- })
275
-
276
- it('creates 2 columns', async () => {
277
- expect(wrapper.findAll('.stacked-column-chart__groups__item')).toHaveLength(2)
278
- })
279
-
280
- it('creates the first group of columns with maximum height', () => {
281
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
282
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
283
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
284
- const bazColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--baz')
285
- const totalHeight = fooColumn.element.offsetHeight + barColumn.element.offsetHeight + bazColumn.element.offsetHeight
286
- expect(totalHeight).toBe(100)
287
- })
288
-
289
- it('creates the first group of columns with maximum width', () => {
290
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
291
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
292
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
293
- const bazColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--baz')
294
- expect(fooColumn.element.style.maxWidth).toBe('50%')
295
- expect(barColumn.element.style.maxWidth).toBe('50%')
296
- expect(bazColumn.element.style.maxWidth).toBe('50%')
297
- })
298
-
299
- it('creates the second group of columns with ~50% height', () => {
300
- const secondGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(1)
301
- const fooColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
302
- const barColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
303
- const bazColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--baz')
304
- const totalHeight = fooColumn.element.offsetHeight + barColumn.element.offsetHeight + bazColumn.element.offsetHeight
305
- expect(totalHeight).toBe(50)
306
- })
307
-
308
- it('creates the first group of columns with right height for each', () => {
309
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
310
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
311
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
312
- const bazColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--baz')
313
- expect(fooColumn.element.offsetHeight).toBe(90)
314
- expect(barColumn.element.offsetHeight).toBe(5)
315
- expect(bazColumn.element.offsetHeight).toBe(5)
316
- })
317
-
318
- it('creates the first group of columns with right height for each', () => {
319
- const secondGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(1)
320
- const fooColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
321
- const barColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
322
- const bazColumn = secondGroup.find('.stacked-column-chart__groups__item__bars__item--baz')
323
- expect(fooColumn.element.offsetHeight).toBe(40)
324
- expect(barColumn.element.offsetHeight).toBe(10)
325
- expect(bazColumn.element.offsetHeight).toBe(0)
326
- })
327
-
328
- it('creates a visible left axis', async () => {
329
- const leftAxis = wrapper.find('.stacked-column-chart__left-axis')
330
- expect(leftAxis.attributes('style')).not.toBe('display: none;')
331
- })
332
-
333
- it('creates a left axis with the same sizes than the component', async () => {
334
- const leftAxis = wrapper.find('.stacked-column-chart__left-axis')
335
- expect(leftAxis.attributes('width')).toBe('600px')
336
- expect(leftAxis.attributes('height')).toBe('500px')
337
- })
338
-
339
- it('creates a left axis with 0 as minimum value', async () => {
340
- const firstTick = wrapper.find('.stacked-column-chart__left-axis .tick:first-of-type text')
341
- expect(firstTick.text()).toBe('0')
342
- })
343
-
344
- it('creates a left axis with 100 as minimum value', async () => {
345
- const lastTick = wrapper.find('.stacked-column-chart__left-axis .tick:last-of-type text')
346
- expect(lastTick.text()).toBe('100')
347
- })
348
- })
349
-
350
- describe('a stacked-colmuns chart with 3 columns in 3 groups and a max value', () => {
351
-
352
- let wrapper
353
-
354
- beforeEach(async () => {
355
-
356
- const propsData = {
357
- labelField: 'label',
358
- fixedHeight: 500,
359
- maxValue: 200,
360
- data: [
361
- { label: 'today', foo: 90, bar: 5, baz: 5 },
362
- { label: 'tomorrow', foo: 40, bar: 10, baz: 0 }
363
- ]
364
- }
365
-
366
- const attrs = {
367
- style: 'width: 600px'
368
- }
369
-
370
- wrapper = mount(StackedColumnChart, { propsData, attachTo: createContainer(), attrs })
371
- })
372
-
373
- it('is a Vue instance', () => {
374
- expect(wrapper.vm).toBeTruthy()
375
- })
376
-
377
- it('creates 2 columns', async () => {
378
- expect(wrapper.findAll('.stacked-column-chart__groups__item')).toHaveLength(2)
379
- })
380
-
381
- it('creates the first group of columns with maximum height', () => {
382
- const firstGroup = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
383
- const fooColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--foo')
384
- const barColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--bar')
385
- const bazColumn = firstGroup.find('.stacked-column-chart__groups__item__bars__item--baz')
386
- const totalHeight = fooColumn.element.offsetHeight + barColumn.element.offsetHeight + bazColumn.element.offsetHeight
387
- expect(totalHeight).toBe(50)
388
- })
389
- })
390
-
391
- describe('a stacked-colmuns chart with 3 columns in 3 groups with empty values', () => {
392
-
393
- let wrapper
394
-
395
- beforeEach(async () => {
396
-
397
- const propsData = {
398
- labelField: 'label',
399
- fixedHeight: 500,
400
- hideEmptyValues: true,
401
- highlightDelay: 0,
402
- data: [
403
- { label: 'today', foo: 90, bar: 5, baz: 5 },
404
- { label: 'tomorrow', foo: 40, bar: 10, baz: 0 },
405
- { label: 'next week', foo: 0, bar: 20, baz: 0 }
406
- ]
407
- }
408
-
409
- const attrs = {
410
- style: 'width: 600px'
411
- }
412
-
413
- wrapper = mount(StackedColumnChart, { propsData, attachTo: createContainer(), attrs })
414
- })
415
-
416
-
417
- it('is a Vue instance', () => {
418
- expect(wrapper.vm).toBeTruthy()
419
- })
420
-
421
- it('creates 3 columns', async () => {
422
- expect(wrapper.findAll('.stacked-column-chart__groups__item')).toHaveLength(3)
423
- })
424
-
425
- it('creates the first column with no hidden bars', () => {
426
- const group = wrapper.findAll('.stacked-column-chart__groups__item').at(0)
427
- const hiddenBars = group.findAll('.stacked-column-chart__groups__item__bars__item--hidden')
428
- expect(hiddenBars).toHaveLength(0)
429
- })
430
-
431
- it('creates the second column with one hidden bar', () => {
432
- const group = wrapper.findAll('.stacked-column-chart__groups__item').at(1)
433
- const hiddenBars = group.findAll('.stacked-column-chart__groups__item__bars__item--hidden')
434
- expect(hiddenBars).toHaveLength(1)
435
- })
436
-
437
- it('creates the third column with two hidden bars', () => {
438
- const group = wrapper.findAll('.stacked-column-chart__groups__item').at(2)
439
- const hiddenBars = group.findAll('.stacked-column-chart__groups__item__bars__item--hidden')
440
- expect(hiddenBars).toHaveLength(2)
441
- })
442
- })
443
- })
@@ -1,19 +0,0 @@
1
- import { locale, fallbackLocale, i18n } from '@/i18n'
2
- import {I18n} from 'vue-i18n'
3
-
4
- describe('i18n.js', () => {
5
-
6
- it('exposes a static method called install', () => {
7
-
8
- expectTypeOf(i18n).toMatchTypeOf<I18n>()
9
- })
10
-
11
- it('should use `en` as default locale', () => {
12
- expect(locale).toBe('en')
13
- })
14
-
15
-
16
- it('should use `en` as default fallback locale', () => {
17
- expect(fallbackLocale).toBe('en')
18
- })
19
- })
@@ -1,82 +0,0 @@
1
- import Murmur from '@/main'
2
- import {createApp} from "vue";
3
-
4
- describe('main.js', () => {
5
- it('exposes a static method called `install`', () => {
6
- expect(Murmur.install).toBeDefined()
7
- })
8
-
9
- it('exposes a static method called `setLocaleMessage`', () => {
10
- expect(Murmur.setLocaleMessage).toBeDefined()
11
- })
12
-
13
- it('exposes a static method called `mergeLocaleMessage`', () => {
14
- expect(Murmur.mergeLocaleMessage).toBeDefined()
15
- })
16
-
17
- it('exposes a static method called `setLocale`', () => {
18
- expect(Murmur.setLocale).toBeDefined()
19
- })
20
-
21
- it('exposes a static method called `getLocale`', () => {
22
- expect(Murmur.getLocale).toBeDefined()
23
- })
24
-
25
- it('use plugin to register Murmur components ', () => {
26
- const app = createApp()
27
- expect(app._context.components.ContentPlaceholder).toBeUndefined()
28
- app.use(Murmur)
29
- expect(app._context.components.ContentPlaceholder).toBeDefined()
30
- })
31
-
32
- it('has a list of components', () => {
33
- expect(Murmur.components).toHaveProperty('Brand')
34
- expect(Murmur.components).toHaveProperty('ContentPlaceholder')
35
- expect(Murmur.components).toHaveProperty('DonateForm')
36
- expect(Murmur.components).toHaveProperty('EmbeddableFooter')
37
- expect(Murmur.components).toHaveProperty('EmbedForm')
38
- expect(Murmur.components).toHaveProperty('FollowUsPopover')
39
- expect(Murmur.components).toHaveProperty('Fa')
40
- expect(Murmur.components).toHaveProperty('GenericFooter')
41
- expect(Murmur.components).toHaveProperty('GenericHeader')
42
- expect(Murmur.components).toHaveProperty('ImddbHeader')
43
- expect(Murmur.components).toHaveProperty('ResponsiveIframe')
44
- expect(Murmur.components).toHaveProperty('SharingOptions')
45
- expect(Murmur.components).toHaveProperty('SignUpForm')
46
- expect(Murmur.components).toHaveProperty('SlideUpDown')
47
- })
48
-
49
- it('has a locale', () => {
50
- expect(Murmur.getLocale()).toBe("en")
51
- })
52
-
53
- it('can update the locale', () => {
54
- Murmur.setLocale('en')
55
- expect(Murmur.getLocale()).toBe('en')
56
- Murmur.setLocale('fr')
57
- expect(Murmur.getLocale()).toBe('fr')
58
- })
59
-
60
- it('can define a new locale', () => {
61
- Murmur.setLocaleMessage('jp', {
62
- hello: 'もしもし'
63
- })
64
-
65
- Murmur.setLocale('jp')
66
- expect(Murmur.i18n.global.t('hello')).toBe('もしもし')
67
- })
68
-
69
- it('can merge an existing locale with new messages', () => {
70
- expect(Murmur.getLocale()).toBe('en')
71
- Murmur.mergeLocaleMessage('en', {
72
- hello: 'world',
73
- foo: 'bar'
74
- })
75
- expect(Murmur.i18n.global.t('hello')).toBe('world')
76
- expect(Murmur.i18n.global.t('foo')).toBe('bar')
77
- })
78
-
79
- afterEach(() => {
80
- Murmur.setLocale('en')
81
- })
82
- })