@cnamts/synapse 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/{DateFilter-DoCcOfDW.js → DateFilter-_EFzsvvM.js} +1 -1
  2. package/dist/{NumberFilter-9uR8uo6p.js → NumberFilter-CUxEbKJh.js} +1 -1
  3. package/dist/{PeriodFilter-CxN5ini7.js → PeriodFilter-D5ueqtKy.js} +1 -1
  4. package/dist/{SelectFilter-bfxipgvt.js → SelectFilter-BciBNydy.js} +1 -1
  5. package/dist/{TextFilter-yCnWcmW2.js → TextFilter-DMN_WAQB.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAccordion/AmeliproAccordion.d.ts +1 -1
  7. package/dist/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.d.ts +1 -1
  8. package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.d.ts +1 -1
  9. package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.d.ts +1 -1
  10. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +44 -62
  11. package/dist/components/Amelipro/AmeliproCard/AmeliproCard.d.ts +1 -1
  12. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
  13. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -5
  14. package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
  15. package/dist/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.d.ts +1 -1
  16. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +24 -32
  17. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +36 -48
  18. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +44 -62
  19. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +44 -62
  20. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +0 -4
  21. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +12 -16
  22. package/dist/components/Captcha/Captcha.d.ts +68 -0
  23. package/dist/components/Captcha/CaptchaAlert.d.ts +13 -0
  24. package/dist/components/Captcha/CaptchaBase.d.ts +55 -0
  25. package/dist/components/Captcha/CaptchaBtn.d.ts +12 -0
  26. package/dist/components/Captcha/CaptchaForm.d.ts +16 -0
  27. package/dist/components/Captcha/CaptchaImg.d.ts +12 -0
  28. package/dist/components/Captcha/CaptchaInformation.d.ts +20 -0
  29. package/dist/components/Captcha/captchaApi.d.ts +41 -0
  30. package/dist/components/Captcha/icons/volumeUp.d.ts +2 -0
  31. package/dist/components/Captcha/locales.d.ts +35 -0
  32. package/dist/components/Captcha/types.d.ts +2 -0
  33. package/dist/components/ChipList/ChipList.d.ts +2 -2
  34. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +2 -2
  35. package/dist/components/Customs/SyForm/SyForm.d.ts +6 -3
  36. package/dist/components/Customs/SyTextField/SyTextField.d.ts +13 -17
  37. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +56 -64
  38. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +47 -64
  39. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +18 -17
  40. package/dist/components/DatePicker/tests/setup.d.ts +448 -512
  41. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +4 -4
  42. package/dist/components/NirField/NirField.d.ts +29 -34
  43. package/dist/components/NirField/locales.d.ts +1 -3
  44. package/dist/components/PasswordField/PasswordField.d.ts +2 -0
  45. package/dist/components/PeriodField/PeriodField.d.ts +112 -128
  46. package/dist/components/PhoneField/PhoneField.d.ts +13 -17
  47. package/dist/components/SearchListField/SearchListField.d.ts +2 -2
  48. package/dist/components/SyTextArea/SyTextArea.d.ts +0 -4
  49. package/dist/components/Tables/common/SyTablePagination.d.ts +2 -2
  50. package/dist/components/index.d.ts +1 -0
  51. package/dist/composables/validation/useFormValidation.d.ts +10 -0
  52. package/dist/composables/validation/useValidatable.d.ts +10 -2
  53. package/dist/design-system-v3.js +126 -125
  54. package/dist/design-system-v3.umd.cjs +155 -155
  55. package/dist/main-DISHlqcd.js +34217 -0
  56. package/dist/style.css +1 -1
  57. package/package.json +1 -1
  58. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +6 -7
  59. package/src/components/Amelipro/AmeliproFooter/__tests__/AmeliproFooter.spec.ts +787 -0
  60. package/src/components/Amelipro/AmeliproFooter/__tests__/__snapshots__/AmeliproFooter.spec.ts.snap +318 -0
  61. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/AmeliproHeaderBrandSection.spec.ts +167 -0
  62. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +100 -0
  63. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/__tests__/AmeliproHeaderBar.spec.ts +312 -0
  64. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/__tests__/__snapshots__/AmeliproHeaderBar.spec.ts.snap +98 -0
  65. package/src/components/Amelipro/AmeliproHeader/__tests__/AmeliproHeader.spec.ts +361 -0
  66. package/src/components/Amelipro/AmeliproHeader/__tests__/__snapshots__/AmeliproHeader.spec.ts.snap +22 -0
  67. package/src/components/Amelipro/AmeliproMenu/__tests__/AmeliproMenu.spec.ts +168 -0
  68. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +295 -0
  69. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/__tests__/AmeliproDropdownMenuBtn.spec.ts +128 -0
  70. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/__tests__/__snapshots__/AmeliproDropdownMenuBtn.spec.ts.snap +67 -0
  71. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/__tests__/AmeliproDropdownMenu.spec.ts +266 -0
  72. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/__tests__/__snapshots__/AmeliproDropdownMenu.spec.ts.snap +134 -0
  73. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/__tests__/AmeliproMessagingMenuBtn.spec.ts +72 -0
  74. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/__tests__/__snapshots__/AmeliproMessagingMenuBtn.spec.ts.snap +71 -0
  75. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +12 -0
  76. package/src/components/Captcha/Captcha.mdx +72 -0
  77. package/src/components/Captcha/Captcha.stories.ts +276 -0
  78. package/src/components/Captcha/Captcha.vue +325 -0
  79. package/src/components/Captcha/CaptchaAlert.vue +60 -0
  80. package/src/components/Captcha/CaptchaBase.vue +219 -0
  81. package/src/components/Captcha/CaptchaBtn.vue +35 -0
  82. package/src/components/Captcha/CaptchaForm.vue +58 -0
  83. package/src/components/Captcha/CaptchaImg.vue +41 -0
  84. package/src/components/Captcha/CaptchaInformation.vue +64 -0
  85. package/src/components/Captcha/captchaApi.ts +111 -0
  86. package/src/components/Captcha/icons/volumeUp.vue +11 -0
  87. package/src/components/Captcha/locales.ts +35 -0
  88. package/src/components/Captcha/readme.md +5 -0
  89. package/src/components/Captcha/tests/Captcha.spec.ts +298 -0
  90. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +716 -0
  91. package/src/components/Captcha/types.ts +2 -0
  92. package/src/components/Customs/Selects/SySelect/SySelect.vue +2 -2
  93. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +4 -0
  94. package/src/components/Customs/SyForm/SyForm.stories.ts +133 -23
  95. package/src/components/Customs/SyForm/SyForm.vue +17 -1
  96. package/src/components/Customs/SyTextField/SyTextField.vue +2 -2
  97. package/src/components/DatePicker/CalendarMode/DatePicker.vue +1 -1
  98. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +110 -6
  99. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +28 -3
  100. package/src/components/NirField/NirField.stories.ts +74 -0
  101. package/src/components/NirField/NirField.vue +34 -9
  102. package/src/components/NirField/locales.ts +1 -3
  103. package/src/components/PasswordField/PasswordField.vue +39 -7
  104. package/src/components/PhoneField/PhoneField.vue +43 -10
  105. package/src/components/index.ts +1 -0
  106. package/src/composables/validation/useFormValidation.ts +46 -8
  107. package/src/composables/validation/useValidatable.ts +19 -8
  108. package/dist/main-DMXtXK3y.js +0 -33458
  109. package/src/components/Amelipro/AmeliproFooter/tests/AmeliproFooter.spec.ts +0 -15
  110. package/src/components/Amelipro/AmeliproFooter/tests/__snapshots__/AmeliproFooter.spec.ts.snap +0 -432
  111. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/AmeliproHeaderBrandSection.spec.ts +0 -15
  112. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +0 -131
  113. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/AmeliproHeaderBar.spec.ts +0 -15
  114. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/__snapshots__/AmeliproHeaderBar.spec.ts.snap +0 -172
  115. package/src/components/Amelipro/AmeliproHeader/tests/AmeliproHeader.spec.ts +0 -159
  116. package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +0 -841
  117. package/src/components/Amelipro/AmeliproMenu/tests/AmeliproMenu.spec.ts +0 -85
  118. package/src/components/Amelipro/AmeliproMenu/tests/__snapshots__/AmeliproMenu.spec.ts.snap +0 -537
  119. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/tests/AmeliproDropdownMenuBtn.spec.ts +0 -16
  120. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/tests/__snapshots__/AmeliproDropdownMenuBtn.spec.ts.snap +0 -56
  121. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/tests/AmeliproDropdownMenu.spec.ts +0 -28
  122. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/tests/__snapshots__/AmeliproDropdownMenu.spec.ts.snap +0 -300
  123. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/tests/AmeliproMessagingMenuBtn.spec.ts +0 -16
  124. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/tests/__snapshots__/AmeliproMessagingMenuBtn.spec.ts.snap +0 -89
@@ -0,0 +1,312 @@
1
+ import { VueWrapper, mount, shallowMount } from '@vue/test-utils'
2
+ import { beforeEach, describe, expect, it } from 'vitest'
3
+ import AmeliproHeaderBar from '../AmeliproHeaderBar.vue'
4
+ import AmeliproHeaderBrandSection from '../AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue'
5
+ import type { ComponentProps } from 'vue-component-type-helpers'
6
+ import { DisplayTestComponent } from '@tests/helpers/utils'
7
+ import type { ExpectedPropOptions } from '@tests/types'
8
+ import { type PropType } from 'vue'
9
+ import type { RouteLocationRaw } from 'vue-router'
10
+ import TestHelper from '@tests/helpers/TestHelper'
11
+ import { VSpacer } from 'vuetify/components'
12
+
13
+ const expectedPropOptions: ExpectedPropOptions<typeof AmeliproHeaderBar> = {
14
+ homeHref: {
15
+ type: String,
16
+ default: undefined,
17
+ },
18
+ homeLink: {
19
+ type: [String, Boolean, Object] as PropType<RouteLocationRaw>,
20
+ default: undefined,
21
+ },
22
+ innerWidth: {
23
+ type: String,
24
+ default: '100%',
25
+ },
26
+ serviceSubTitle: {
27
+ type: String,
28
+ default: undefined,
29
+ },
30
+ serviceTitle: {
31
+ type: String,
32
+ default: undefined,
33
+ },
34
+ themeAmelipro: {
35
+ type: Boolean,
36
+ default: true,
37
+ },
38
+ uniqueId: {
39
+ type: String,
40
+ default: undefined,
41
+ },
42
+ }
43
+
44
+ // Values pour les props "required"
45
+ const requiredPropValues = (): ComponentProps<typeof AmeliproHeaderBar> => ({})
46
+
47
+ // Valeurs pour les props "modified"
48
+ const modifiedPropValues = (): ComponentProps<typeof AmeliproHeaderBar> => ({
49
+ homeHref: '#modified-home-href',
50
+ homeLink: '/modified-home-link',
51
+ innerWidth: '1000px',
52
+ serviceSubTitle: 'Modified service sub title',
53
+ serviceTitle: 'Modified service title',
54
+ themeAmelipro: false,
55
+ uniqueId: 'modified-unique-id',
56
+ })
57
+
58
+ const testHelper = new TestHelper(AmeliproHeaderBar)
59
+ testHelper.setExpectedPropOptions(expectedPropOptions)
60
+ .setRequiredPropValues(requiredPropValues)
61
+ .setModifiedPropValues(modifiedPropValues)
62
+
63
+ const displayWrapper = mount(DisplayTestComponent)
64
+
65
+ describe('AmeliproHeaderBar', () => {
66
+ describe('Snapshots', () => {
67
+ testHelper.snapshots()
68
+ })
69
+
70
+ describe('Properties', () => {
71
+ testHelper.properties()
72
+ })
73
+
74
+ describe('Setting props should update attributes of inner tags', () => {
75
+ let vueWrapper: VueWrapper<InstanceType<typeof AmeliproHeaderBar>>
76
+
77
+ describe('root', () => {
78
+ beforeEach(() => {
79
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
80
+ })
81
+
82
+ it('prop uniqueId sets attribute id', async () => {
83
+ expect(vueWrapper.find('.header-bar-container').exists()).toBe(true)
84
+ expect(vueWrapper.find('.header-bar-container').attributes('id')).toBeUndefined()
85
+
86
+ const { uniqueId } = modifiedPropValues()
87
+ await vueWrapper.setProps({ uniqueId })
88
+ expect(vueWrapper.find('.header-bar-container').attributes('id')).toBe('modified-unique-id-container')
89
+ })
90
+ })
91
+
92
+ describe('header bar', () => {
93
+ beforeEach(() => {
94
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
95
+ })
96
+
97
+ it('prop uniqueId sets attribute id', async () => {
98
+ expect(vueWrapper.find('.header-bar').attributes('id')).toBeUndefined()
99
+
100
+ const { uniqueId } = modifiedPropValues()
101
+ await vueWrapper.setProps({ uniqueId })
102
+ expect(vueWrapper.find('.header-bar').attributes('id')).toBe('modified-unique-id-main-bar')
103
+ })
104
+ })
105
+
106
+ describe('header bar content', () => {
107
+ beforeEach(() => {
108
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
109
+ })
110
+
111
+ it('xs & smAndDown value set attribute class', async () => {
112
+ displayWrapper.vm.setXs(false)
113
+ displayWrapper.vm.setSmAndDown(false)
114
+ await vueWrapper.vm.$nextTick()
115
+ expect(vueWrapper.find('.header-bar-content').attributes('class')).toBe('header-bar-content d-flex justify-center px-14 py-2')
116
+
117
+ displayWrapper.vm.setSmAndDown(true)
118
+ await vueWrapper.vm.$nextTick()
119
+ expect(vueWrapper.find('.header-bar-content').attributes('class')).toBe('header-bar-content d-flex justify-center px-8 py-2')
120
+
121
+ displayWrapper.vm.setXs(true)
122
+ await vueWrapper.vm.$nextTick()
123
+ expect(vueWrapper.find('.header-bar-content').attributes('class')).toBe('header-bar-content d-flex justify-center px-6 py-2')
124
+
125
+ displayWrapper.vm.resetDefaults()
126
+ })
127
+ })
128
+
129
+ describe('header bar content container', () => {
130
+ beforeEach(() => {
131
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
132
+ })
133
+
134
+ it('prop innerWidth sets attribute style', async () => {
135
+ expect(vueWrapper.find('.header-bar-content__container').attributes('style')).toBe('width: 100%; max-width: 100%;')
136
+
137
+ const { innerWidth } = modifiedPropValues()
138
+ await vueWrapper.setProps({ innerWidth })
139
+ expect(vueWrapper.find('.header-bar-content__container').attributes('style')).toBe('width: 1000px; max-width: 1000px;')
140
+ })
141
+ })
142
+
143
+ describe('navigation bar div', () => {
144
+ it('prop innerWidth sets attribute style', async () => {
145
+ vueWrapper = shallowMount(AmeliproHeaderBar, {
146
+ props: requiredPropValues(),
147
+ slots: { 'navigation-bar-content': 'Modified navigation bar content' },
148
+ })
149
+ expect(vueWrapper.find('.navigation-bar > div').attributes('style')).toBe('width: 100%; max-width: 100%;')
150
+
151
+ const { innerWidth } = modifiedPropValues()
152
+ await vueWrapper.setProps({ innerWidth })
153
+ expect(vueWrapper.find('.navigation-bar > div').attributes('style')).toBe('width: 1000px; max-width: 1000px;')
154
+ })
155
+ })
156
+ })
157
+
158
+ describe('Setting props should update props of inner components', () => {
159
+ let vueWrapper: VueWrapper<InstanceType<typeof AmeliproHeaderBar>>
160
+
161
+ describe('AmeliproHeaderBrandSection', () => {
162
+ beforeEach(() => {
163
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
164
+ })
165
+
166
+ it('prop uniqueId sets prop uniqueId', async () => {
167
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('uniqueId')).toBeUndefined()
168
+
169
+ const { uniqueId } = modifiedPropValues()
170
+ await vueWrapper.setProps({ uniqueId })
171
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('uniqueId')).toBe('modified-unique-id-brand-section')
172
+ })
173
+
174
+ it('prop homeHref sets prop homeHref', async () => {
175
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('homeHref')).toBeUndefined()
176
+
177
+ const { homeHref } = modifiedPropValues()
178
+ await vueWrapper.setProps({ homeHref })
179
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('homeHref')).toBe('#modified-home-href')
180
+ })
181
+
182
+ it('prop homeLink sets prop homeLink', async () => {
183
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('homeLink')).toBeUndefined()
184
+
185
+ const { homeLink } = modifiedPropValues()
186
+ await vueWrapper.setProps({ homeLink })
187
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('homeLink')).toBe('/modified-home-link')
188
+ })
189
+
190
+ it('displayWidth sets prop mobileVersion', async () => {
191
+ displayWrapper.vm.setSmAndDown(false)
192
+ await vueWrapper.vm.$nextTick()
193
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('mobileVersion')).toBe(false)
194
+
195
+ displayWrapper.vm.setSmAndDown(true)
196
+ await vueWrapper.vm.$nextTick()
197
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('mobileVersion')).toBe(true)
198
+
199
+ displayWrapper.vm.resetDefaults()
200
+ })
201
+
202
+ it('prop serviceSubTitle sets prop serviceSubTitle', async () => {
203
+ expect(vueWrapper.findComponent(AmeliproHeaderBar).props('serviceSubTitle')).toBeUndefined()
204
+
205
+ const { serviceSubTitle } = modifiedPropValues()
206
+ await vueWrapper.setProps({ serviceSubTitle })
207
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('serviceSubTitle')).toBe('Modified service sub title')
208
+ })
209
+
210
+ it('prop serviceTitle sets prop serviceTitle', async () => {
211
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('serviceTitle')).toBeUndefined()
212
+
213
+ const { serviceTitle } = modifiedPropValues()
214
+ await vueWrapper.setProps({ serviceTitle })
215
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('serviceTitle')).toBe('Modified service title')
216
+ })
217
+
218
+ it('prop themeAmelipro sets prop themeAmelipro', async () => {
219
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('themeAmelipro')).toBe(true)
220
+
221
+ const { themeAmelipro } = modifiedPropValues()
222
+ await vueWrapper.setProps({ themeAmelipro })
223
+ expect(vueWrapper.findComponent(AmeliproHeaderBrandSection).props('themeAmelipro')).toBe(false)
224
+ })
225
+ })
226
+
227
+ describe('VSpacer', () => {
228
+ beforeEach(() => {
229
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
230
+ })
231
+
232
+ it('slot #default & display width set VSpacer visibility', async () => {
233
+ displayWrapper.vm.setSmAndDown(false)
234
+ await vueWrapper.vm.$nextTick()
235
+ expect(vueWrapper.findComponent(VSpacer).exists()).toBe(false)
236
+
237
+ displayWrapper.vm.setSmAndDown(true)
238
+ await vueWrapper.vm.$nextTick()
239
+ expect(vueWrapper.findComponent(VSpacer).exists()).toBe(true)
240
+
241
+ displayWrapper.vm.setSmAndDown(false)
242
+ await vueWrapper.vm.$nextTick()
243
+ vueWrapper = shallowMount(AmeliproHeaderBar, {
244
+ props: requiredPropValues(),
245
+ slots: { default: 'Default slot content' },
246
+ })
247
+ expect(vueWrapper.findComponent(VSpacer).exists()).toBe(true)
248
+ })
249
+ })
250
+ })
251
+
252
+ describe('Slots', () => {
253
+ let vueWrapper: VueWrapper<InstanceType<typeof AmeliproHeaderBar>>
254
+
255
+ describe('#default', () => {
256
+ it('slot #default without content', () => {
257
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
258
+ expect(vueWrapper.find('.header-bar-content__container').text()).toBe('')
259
+ })
260
+
261
+ it('slot #default with content', () => {
262
+ vueWrapper = shallowMount(AmeliproHeaderBar, {
263
+ props: requiredPropValues(),
264
+ slots: { default: 'Default slot content' },
265
+ })
266
+ expect(vueWrapper.find('.header-bar-content__container').text()).toBe('Default slot content')
267
+ })
268
+ })
269
+
270
+ describe('#navigation-bar-content & navigation bar', () => {
271
+ beforeEach(() => {
272
+ vueWrapper = shallowMount(AmeliproHeaderBar, {
273
+ props: requiredPropValues(),
274
+ slots: { 'navigation-bar-content': 'Modified navigation bar content' },
275
+ })
276
+ })
277
+
278
+ it('slot #navigation-bar-content sets navigation bar visibility', () => {
279
+ expect(vueWrapper.find('.navigation-bar').exists()).toBe(true)
280
+
281
+ vueWrapper = shallowMount(AmeliproHeaderBar, { props: requiredPropValues() })
282
+ expect(vueWrapper.find('.navigation-bar').exists()).toBe(false)
283
+ })
284
+
285
+ it('slot #navigation-bar-content sets navigation bar content', () => {
286
+ expect(vueWrapper.find('.navigation-bar').text()).toBe('Modified navigation bar content')
287
+ })
288
+
289
+ it('prop uniqueId sets attribute id', async () => {
290
+ expect(vueWrapper.find('.navigation-bar').attributes('id')).toBeUndefined()
291
+
292
+ const { uniqueId } = modifiedPropValues()
293
+ await vueWrapper.setProps({ uniqueId })
294
+ expect(vueWrapper.find('.navigation-bar').attributes('id')).toBe('modified-unique-id-navigation-bar')
295
+ })
296
+
297
+ it('prop smAndDown value sets attribute class', async () => {
298
+ displayWrapper.vm.setSmAndDown(false)
299
+ await vueWrapper.vm.$nextTick()
300
+ expect(vueWrapper.find('.navigation-bar').classes('px-8')).toBe(false)
301
+ expect(vueWrapper.find('.navigation-bar').classes('px-14')).toBe(true)
302
+
303
+ displayWrapper.vm.setSmAndDown(true)
304
+ await vueWrapper.vm.$nextTick()
305
+ expect(vueWrapper.find('.navigation-bar').classes('px-8')).toBe(true)
306
+ expect(vueWrapper.find('.navigation-bar').classes('px-14')).toBe(false)
307
+
308
+ displayWrapper.vm.resetDefaults()
309
+ })
310
+ })
311
+ })
312
+ })
@@ -0,0 +1,98 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`AmeliproHeaderBar > Snapshots > renders the component with all properties filled in 1`] = `
4
+ <header
5
+ class="
6
+ header-bar-container
7
+ w-100
8
+ "
9
+ id="modified-unique-id-container"
10
+ role="banner"
11
+ >
12
+ <div
13
+ class="
14
+ bg-ap-white
15
+ d-block
16
+ header-bar
17
+ w-100
18
+ "
19
+ id="modified-unique-id-main-bar"
20
+ >
21
+ <div class="
22
+ d-flex
23
+ header-bar-content
24
+ justify-center
25
+ px-14
26
+ py-2
27
+ ">
28
+ <div
29
+ class="
30
+ align-center
31
+ d-flex
32
+ header-bar-content__container
33
+ "
34
+ style="
35
+ width: 1000px;
36
+ max-width: 1000px;
37
+ "
38
+ >
39
+ <amelipro-header-brand-section-stub
40
+ homehref="#modified-home-href"
41
+ homelink="/modified-home-link"
42
+ mobileversion="false"
43
+ servicesubtitle="Modified service sub title"
44
+ servicetitle="Modified service title"
45
+ themeamelipro="false"
46
+ uniqueid="modified-unique-id-brand-section"
47
+ ></amelipro-header-brand-section-stub>
48
+ <!-- v-if -->
49
+ </div>
50
+ </div>
51
+ <!-- v-if -->
52
+ </div>
53
+ </header>
54
+ `;
55
+
56
+ exports[`AmeliproHeaderBar > Snapshots > renders the component with only required properties filled in 1`] = `
57
+ <header
58
+ class="
59
+ header-bar-container
60
+ w-100
61
+ "
62
+ role="banner"
63
+ >
64
+ <div class="
65
+ bg-ap-white
66
+ d-block
67
+ header-bar
68
+ w-100
69
+ ">
70
+ <div class="
71
+ d-flex
72
+ header-bar-content
73
+ justify-center
74
+ px-14
75
+ py-2
76
+ ">
77
+ <div
78
+ class="
79
+ align-center
80
+ d-flex
81
+ header-bar-content__container
82
+ "
83
+ style="
84
+ width: 100%;
85
+ max-width: 100%;
86
+ "
87
+ >
88
+ <amelipro-header-brand-section-stub
89
+ mobileversion="false"
90
+ themeamelipro="true"
91
+ ></amelipro-header-brand-section-stub>
92
+ <!-- v-if -->
93
+ </div>
94
+ </div>
95
+ <!-- v-if -->
96
+ </div>
97
+ </header>
98
+ `;