@cnamts/synapse 1.0.23 → 1.0.24
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.
- package/dist/AutocompleteFilter-BWLR3U7W.js +114 -0
- package/dist/AutocompleteFilter-D9jzRzAL.cjs +1 -0
- package/dist/{DateFilter-Dc-gSGwk.js → DateFilter-BpwFexzi.js} +1 -1
- package/dist/DateFilter-DTUl8hb1.cjs +1 -0
- package/dist/{NumberFilter-vP38Wp6j.js → NumberFilter-Bz_NTdX9.js} +3 -3
- package/dist/NumberFilter-MAEojdk0.cjs +1 -0
- package/dist/PeriodFilter-CC4WgIhl.cjs +1 -0
- package/dist/{PeriodFilter-Ba1uYUnT.js → PeriodFilter-DX_wy9g-.js} +1 -1
- package/dist/SelectFilter-BR3fvl-a.cjs +1 -0
- package/dist/SelectFilter-xqiPtPgX.js +135 -0
- package/dist/{TextFilter-B84dpnoq.js → TextFilter-BBl3JFqK.js} +7 -7
- package/dist/TextFilter-CCfYFl5F.cjs +1 -0
- package/dist/apLightTheme-CFSRrjv2.cjs +1 -0
- package/dist/apLightTheme-D1P4jcD0.js +1231 -0
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7022 -9616
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +40 -40
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +60 -60
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +7168 -9762
- package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +7501 -10095
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +21 -21
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +41 -41
- package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +2 -2
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +20 -498
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +108 -146
- package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +5 -5
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +12 -16
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +8 -8
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +28 -506
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +28 -506
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +65 -85
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +627 -771
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +315 -402
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +112 -155
- package/dist/components/DatePicker/composables/index.d.ts +1 -0
- package/dist/components/DatePicker/composables/useDatePickerFocusTrap.d.ts +11 -0
- package/dist/components/DatePicker/composables/useDateTextField.d.ts +4 -4
- package/dist/components/DatePicker/composables/useDateValidation.d.ts +3 -3
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +2 -2
- package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +2 -2
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +4 -4
- package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +20 -28
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +3 -3
- package/dist/components/MonthPicker/MonthPicker.d.ts +86 -122
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +85 -121
- package/dist/components/NirField/NirField.d.ts +206 -270
- package/dist/components/NirField/locales.d.ts +10 -10
- package/dist/components/NirField/useNirValidation.d.ts +64 -0
- package/dist/components/PasswordField/PasswordField.d.ts +8 -9
- package/dist/components/PeriodField/PeriodField.d.ts +1352 -1640
- package/dist/components/PhoneField/PhoneField.d.ts +88 -124
- package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +12 -12
- package/dist/components/SyTextArea/SyTextArea.d.ts +34 -14
- package/dist/components/SyTextArea/useDefaultValidationRules.d.ts +11 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +9 -6
- package/dist/components/Tables/SyTable/SyTable.d.ts +9 -6
- package/dist/components/Tables/common/SyTableFilter.d.ts +2 -3
- package/dist/components/Tables/common/SyTablePagination.d.ts +17 -19
- package/dist/components/Tables/common/filters/AutocompleteFilter.d.ts +120 -0
- package/dist/components/Tables/common/filters/locales.d.ts +0 -1
- package/dist/components/Tables/common/types.d.ts +19 -3
- package/dist/components/Tables/common/useClickableTableRow.d.ts +17 -0
- package/dist/components/Tables/common/usePagination.d.ts +3 -1
- package/dist/components/Tables/common/usePinnedColumns.d.ts +31 -0
- package/dist/components/Tables/common/useTableHeaders.d.ts +2 -0
- package/dist/components/Tables/common/useTableRowCheckboxAccessibility.d.ts +5 -0
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +6 -6
- package/dist/composables/date/useDatePickerAccessibility.d.ts +1 -1
- package/dist/composables/rules/useFieldValidation.d.ts +4 -4
- package/dist/composables/unifyValidation/useCustomValidation.d.ts +8 -0
- package/dist/composables/unifyValidation/useValidation.d.ts +102 -0
- package/dist/composables/unifyValidation/useVuetifyValidation.d.ts +18 -0
- package/dist/composables/useFormFieldErrorHandling.d.ts +2 -2
- package/dist/composables/validation/useFormValidation.d.ts +11 -2
- package/dist/composables/validation/useValidation.d.ts +15 -9
- package/dist/design-system-v3.d.ts +2 -0
- package/dist/design-system-v3.js +186 -187
- package/dist/design-system-v3.umd.cjs +1 -1066
- package/dist/{main-aLKwdMi1.js → main-BtTqyn4z.js} +16434 -15672
- package/dist/main-C1e3eoxd.cjs +1067 -0
- package/dist/main.d.ts +0 -1
- package/dist/synapse.css +1 -0
- package/dist/tooth-11-D3sLWv2n.cjs +1 -0
- package/dist/tooth-12-CXrLuH03.cjs +1 -0
- package/dist/tooth-13-BSfo5fpT.cjs +1 -0
- package/dist/tooth-14-DMzulx0h.cjs +1 -0
- package/dist/tooth-15-BKRFVi-9.cjs +1 -0
- package/dist/tooth-16-CpuxAbuM.cjs +1 -0
- package/dist/tooth-17-BPoahUdg.cjs +1 -0
- package/dist/tooth-18-DhHJz8sy.cjs +1 -0
- package/dist/tooth-21-Dgd5hn_X.cjs +1 -0
- package/dist/tooth-22-C2Tn19sB.cjs +1 -0
- package/dist/tooth-23-C9uaaSGb.cjs +1 -0
- package/dist/tooth-24-BrK9UGpf.cjs +1 -0
- package/dist/tooth-25-CE_EfGNp.cjs +1 -0
- package/dist/tooth-26-Ctv4i9Fy.cjs +1 -0
- package/dist/tooth-27-C5J7JkWM.cjs +1 -0
- package/dist/tooth-28-Z9oWqjo0.cjs +1 -0
- package/dist/tooth-31-BrYqmkTi.cjs +1 -0
- package/dist/tooth-32-BNNR0oCZ.cjs +1 -0
- package/dist/tooth-33-DuxvqO2J.cjs +1 -0
- package/dist/tooth-34-BCSCXMB6.cjs +1 -0
- package/dist/tooth-35-BLUXkX88.cjs +1 -0
- package/dist/tooth-36-IrKHYqlA.cjs +1 -0
- package/dist/tooth-37-BYqpdMwo.cjs +1 -0
- package/dist/tooth-38-B_eNXXdu.cjs +1 -0
- package/dist/tooth-41-Ddva4Ot8.cjs +1 -0
- package/dist/tooth-42-szcDqlM0.cjs +1 -0
- package/dist/tooth-43-B3ka6rQm.cjs +1 -0
- package/dist/tooth-44-CazyQucj.cjs +1 -0
- package/dist/tooth-45-B4HQtc8n.cjs +1 -0
- package/dist/tooth-46-BPM40gbG.cjs +1 -0
- package/dist/tooth-47-Dvr20dlh.cjs +1 -0
- package/dist/tooth-48-Bd8ljGsF.cjs +1 -0
- package/dist/tooth-51-OBpwCOF3.cjs +1 -0
- package/dist/tooth-52-aKxyHcmq.cjs +1 -0
- package/dist/tooth-53-vCwJjTOc.cjs +1 -0
- package/dist/tooth-54-DsWu2iFy.cjs +1 -0
- package/dist/tooth-55-BxC1X2Dn.cjs +1 -0
- package/dist/tooth-61-BbLvxMQi.cjs +1 -0
- package/dist/tooth-62-CmTkWczP.cjs +1 -0
- package/dist/tooth-63-DI7l_2qI.cjs +1 -0
- package/dist/tooth-64-B21sOsJh.cjs +1 -0
- package/dist/tooth-65-D2ZC2VEr.cjs +1 -0
- package/dist/tooth-71-D473PPO5.cjs +1 -0
- package/dist/tooth-72-Drh1wnNu.cjs +1 -0
- package/dist/tooth-73-DzlwYI23.cjs +1 -0
- package/dist/tooth-74-8aGvcZPg.cjs +1 -0
- package/dist/tooth-75-BFK7At_r.cjs +1 -0
- package/dist/tooth-81-BZmR-I0M.cjs +1 -0
- package/dist/tooth-82-euVfUUZV.cjs +1 -0
- package/dist/tooth-83-KV010j64.cjs +1 -0
- package/dist/tooth-84-BBg1RjhZ.cjs +1 -0
- package/dist/tooth-85-Cr-kc1wM.cjs +1 -0
- package/dist/vuetifyConfig.js +561 -0
- package/dist/vuetifyConfig.umd.cjs +1 -0
- package/package.json +10 -4
- package/src/assets/overrides/_btns.scss +0 -6
- package/src/assets/overrides/_icons.scss +9 -1
- package/src/assets/overrides/_typography.scss +0 -10
- package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +1 -1
- package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +2 -2
- package/src/components/Captcha/accessibilite/Accessibility.mdx +86 -8
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +12 -12
- package/src/components/ChipList/ChipList.stories.ts +0 -15
- package/src/components/ChipList/ChipList.vue +5 -1
- package/src/components/ChipList/accessibilite/Accessibility.mdx +83 -10
- package/src/components/ChipList/tests/ChipList.a11y.spec.ts +41 -0
- package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +0 -9
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +22 -5
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +143 -0
- package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +14 -10
- package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -4
- package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +8 -9
- package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.spec.ts +10 -10
- package/src/components/Customs/Selects/SySelect/SySelect.vue +14 -11
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +54 -0
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +6 -9
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +10 -16
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +16 -11
- package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +35 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +134 -2
- package/src/components/Customs/SyForm/SyForm.stories.ts +31 -5
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -7
- package/src/components/Customs/SyTextField/SyTextField.mdx +1 -1
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +29 -27
- package/src/components/Customs/SyTextField/SyTextField.vue +154 -157
- package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +32 -0
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +120 -11
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +62 -58
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +330 -223
- package/src/components/DatePicker/CalendarMode/accessibilite/Accessibility.mdx +82 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +141 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +2 -56
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +195 -159
- package/src/components/DatePicker/ComplexDatePicker/accessibilite/Accessibility.mdx +76 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +10 -10
- package/src/components/DatePicker/DatePickerValidationExample/CalendarMode.stories.ts +8 -8
- package/src/components/DatePicker/DatePickerValidationExample/ComplexDatePicker.stories.ts +106 -8
- package/src/components/DatePicker/DatePickerValidationExample/DateTextInput.stories.ts +12 -11
- package/src/components/DatePicker/DatePickerValidationExample/MultiMode.stories.ts +12 -12
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +0 -12
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +63 -57
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +3 -0
- package/src/components/DatePicker/DateTextInput/accessibilite/Accessibility.mdx +66 -0
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +52 -1
- package/src/components/DatePicker/composables/index.ts +1 -0
- package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +109 -65
- package/src/components/DatePicker/composables/tests/useDatePickerFocusTrap.spec.ts +138 -0
- package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +74 -18
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +39 -0
- package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +91 -0
- package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +442 -36
- package/src/components/DatePicker/composables/useDatePickerFocusTrap.ts +92 -0
- package/src/components/DatePicker/composables/useDateTextField.ts +7 -6
- package/src/components/DatePicker/composables/useDateValidation.ts +36 -35
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +3 -3
- package/src/components/DatePicker/composables/useManualDateValidation.ts +6 -2
- package/src/components/DiacriticPicker/accessibilite/Accessibility.mdx +76 -8
- package/src/components/HeaderBar/HeaderBar.stories.ts +14 -2
- package/src/components/Logo/accessibilite/Accessibility.mdx +73 -11
- package/src/components/LogoBrandSection/accessibilite/Accessibility.mdx +85 -9
- package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +3 -1
- package/src/components/LunarCalendar/useLunarCalendarValidation.ts +4 -5
- package/src/components/MonthPicker/tests/MonthPicker.spec.ts +2 -1
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +7 -7
- package/src/components/NirField/NirField.stories.ts +4 -0
- package/src/components/NirField/NirField.vue +64 -260
- package/src/components/NirField/accessibilite/Accessibility.mdx +2 -2
- package/src/components/NirField/locales.ts +1 -1
- package/src/components/NirField/tests/NirField.spec.ts +6 -0
- package/src/components/NirField/useNirValidation.ts +271 -0
- package/src/components/PasswordField/PasswordField.stories.ts +4 -4
- package/src/components/PasswordField/PasswordField.vue +18 -24
- package/src/components/PasswordField/tests/PasswordField.spec.ts +6 -3
- package/src/components/PeriodField/PeriodField.stories.ts +4 -4
- package/src/components/PeriodField/PeriodField.vue +57 -57
- package/src/components/PeriodField/__tests__/PeriodField.async.spec.ts +32 -0
- package/src/components/PeriodField/accessibilite/Accessibility.mdx +68 -8
- package/src/components/PeriodField/tests/PeriodField.spec.ts +28 -2
- package/src/components/PhoneField/PhoneField.vue +5 -6
- package/src/components/PhoneField/tests/PhoneField.spec.ts +1 -0
- package/src/components/RangeField/RangeField.vue +6 -0
- package/src/components/SyTextArea/SyTextArea.stories.ts +138 -2
- package/src/components/SyTextArea/SyTextArea.vue +53 -23
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +126 -3
- package/src/components/SyTextArea/useDefaultValidationRules.ts +74 -0
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +25 -0
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +673 -1
- package/src/components/Tables/SyServerTable/SyServerTable.vue +148 -91
- package/src/components/Tables/SyServerTable/tests/SyServerTable.a11y.spec.ts +58 -0
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +122 -0
- package/src/components/Tables/SyTable/SyTable.mdx +25 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +452 -1
- package/src/components/Tables/SyTable/SyTable.vue +130 -56
- package/src/components/Tables/SyTable/tests/SyTable.a11y.spec.ts +57 -0
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +108 -0
- package/src/components/Tables/common/SyTableFilter.vue +22 -2
- package/src/components/Tables/common/TableHeader.vue +5 -1
- package/src/components/Tables/common/filters/AutocompleteFilter.vue +160 -0
- package/src/components/Tables/common/filters/NumberFilter.vue +1 -1
- package/src/components/Tables/common/filters/SelectFilter.vue +10 -11
- package/src/components/Tables/common/filters/TextFilter.vue +1 -1
- package/src/components/Tables/common/filters/getFilterComponent.ts +8 -1
- package/src/components/Tables/common/filters/locales.ts +0 -1
- package/src/components/Tables/common/filters/tests/AutocompleteFilter.a11y.spec.ts +110 -0
- package/src/components/Tables/common/filters/tests/AutocompleteFilter.spec.ts +203 -0
- package/src/components/Tables/common/filters/tests/SelectFilter.a11y.spec.ts +104 -0
- package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +152 -16
- package/src/components/Tables/common/tableFilterUtils.ts +3 -0
- package/src/components/Tables/common/tableStyles.scss +48 -4
- package/src/components/Tables/common/tests/filterByRange.spec.ts +2 -1
- package/src/components/Tables/common/types.ts +13 -4
- package/src/components/Tables/common/useClickableTableRow.ts +103 -0
- package/src/components/Tables/common/usePagination.ts +13 -0
- package/src/components/Tables/common/usePinnedColumns.ts +237 -0
- package/src/components/Tables/common/useTableHeaders.ts +3 -3
- package/src/components/Tables/common/useTableRowCheckboxAccessibility.ts +41 -0
- package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +2 -6
- package/src/composables/date/useDatePickerAccessibility.ts +42 -207
- package/src/composables/rules/tests/useFieldValidation.spec.ts +120 -120
- package/src/composables/rules/useFieldValidation.ts +34 -17
- package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +601 -0
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +2048 -0
- package/src/composables/unifyValidation/tests/useVuetifyValidation.spec.ts +184 -0
- package/src/composables/unifyValidation/useCustomValidation.ts +95 -0
- package/src/composables/unifyValidation/useValidation.ts +190 -0
- package/src/composables/unifyValidation/useVuetifyValidation.ts +54 -0
- package/src/composables/useFormFieldErrorHandling.ts +4 -7
- package/src/composables/validation/tests/useFormValidation.spec.ts +14 -0
- package/src/composables/validation/tests/useValidation.spec.ts +116 -21
- package/src/composables/validation/useFormValidation.ts +20 -13
- package/src/composables/validation/useValidatable.ts +8 -1
- package/src/composables/validation/useValidation.ts +135 -99
- package/src/composantsVuetify/Introduction.mdx +48 -0
- package/src/composantsVuetify/VBtn/VBtn.mdx +72 -0
- package/src/composantsVuetify/VBtn/v-btn.stories.ts +121 -0
- package/src/composantsVuetify/VTooltip/VTooltip.mdx +32 -0
- package/src/composantsVuetify/VTooltip/v-tooltip.stories.ts +95 -0
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +2 -2
- package/src/main.ts +0 -2
- package/src/stories/Components/Components.stories.ts +74 -9
- package/src/stories/Demarrer/Accueil.stories.ts +3 -3
- package/src/stories/GuideDuDev/Amelipro.mdx +15 -0
- package/src/stories/GuideDuDev/Amelipro.stories.ts +209 -0
- package/src/stories/GuideDuDev/vuetifyOptions.mdx +3 -3
- package/dist/SelectFilter-BioGT6Nn.js +0 -136
- package/dist/style.css +0 -1
- package/src/components/DatePicker/Accessibilite.mdx +0 -14
|
@@ -27,7 +27,7 @@ describe('useDateValidation', () => {
|
|
|
27
27
|
getRangeValidationError.value = ''
|
|
28
28
|
})
|
|
29
29
|
|
|
30
|
-
it('devrait retourner valid=true en mode noCalendar', () => {
|
|
30
|
+
it('devrait retourner valid=true en mode noCalendar', async () => {
|
|
31
31
|
const { validateDates } = useDateValidation({
|
|
32
32
|
noCalendar: true,
|
|
33
33
|
required: true,
|
|
@@ -42,12 +42,12 @@ describe('useDateValidation', () => {
|
|
|
42
42
|
successes,
|
|
43
43
|
})
|
|
44
44
|
|
|
45
|
-
const result = validateDates()
|
|
45
|
+
const result = await validateDates()
|
|
46
46
|
expect(result.hasError).toBe(false)
|
|
47
47
|
expect(mockClearValidation).not.toHaveBeenCalled()
|
|
48
48
|
})
|
|
49
49
|
|
|
50
|
-
it('devrait appeler clearValidation lors de la validation', () => {
|
|
50
|
+
it('devrait appeler clearValidation lors de la validation', async () => {
|
|
51
51
|
const { validateDates } = useDateValidation({
|
|
52
52
|
required: false,
|
|
53
53
|
selectedDates,
|
|
@@ -61,11 +61,11 @@ describe('useDateValidation', () => {
|
|
|
61
61
|
successes,
|
|
62
62
|
})
|
|
63
63
|
|
|
64
|
-
validateDates()
|
|
64
|
+
await validateDates()
|
|
65
65
|
expect(mockClearValidation).toHaveBeenCalledTimes(1)
|
|
66
66
|
})
|
|
67
67
|
|
|
68
|
-
it('devrait retourner une erreur si le champ est requis et vide', () => {
|
|
68
|
+
it('devrait retourner une erreur si le champ est requis et vide', async () => {
|
|
69
69
|
const { validateDates } = useDateValidation({
|
|
70
70
|
required: true,
|
|
71
71
|
selectedDates,
|
|
@@ -79,13 +79,13 @@ describe('useDateValidation', () => {
|
|
|
79
79
|
successes,
|
|
80
80
|
})
|
|
81
81
|
|
|
82
|
-
const result = validateDates()
|
|
82
|
+
const result = await validateDates()
|
|
83
83
|
expect(result.hasError).toBe(true)
|
|
84
84
|
expect(result.state.errors[0]).toBe('La date est requise.')
|
|
85
85
|
expect(errors.value).toContain('La date est requise.')
|
|
86
86
|
})
|
|
87
87
|
|
|
88
|
-
it('ne devrait pas afficher d\'erreur si disableErrorHandling=true', () => {
|
|
88
|
+
it('ne devrait pas afficher d\'erreur si disableErrorHandling=true', async () => {
|
|
89
89
|
const { validateDates } = useDateValidation({
|
|
90
90
|
required: true,
|
|
91
91
|
disableErrorHandling: true,
|
|
@@ -100,11 +100,11 @@ describe('useDateValidation', () => {
|
|
|
100
100
|
successes,
|
|
101
101
|
})
|
|
102
102
|
|
|
103
|
-
validateDates()
|
|
103
|
+
await validateDates()
|
|
104
104
|
expect(errors.value).toHaveLength(0)
|
|
105
105
|
})
|
|
106
106
|
|
|
107
|
-
it('devrait appeler validateField pour chaque date dans un tableau', () => {
|
|
107
|
+
it('devrait appeler validateField pour chaque date dans un tableau', async () => {
|
|
108
108
|
const today = new Date()
|
|
109
109
|
const tomorrow = new Date(today)
|
|
110
110
|
tomorrow.setDate(today.getDate() + 1)
|
|
@@ -125,13 +125,13 @@ describe('useDateValidation', () => {
|
|
|
125
125
|
successes,
|
|
126
126
|
})
|
|
127
127
|
|
|
128
|
-
validateDates()
|
|
128
|
+
await validateDates()
|
|
129
129
|
expect(mockValidateField).toHaveBeenCalledTimes(2)
|
|
130
130
|
expect(mockValidateField).toHaveBeenCalledWith(today, [], [])
|
|
131
131
|
expect(mockValidateField).toHaveBeenCalledWith(tomorrow, [], [])
|
|
132
132
|
})
|
|
133
133
|
|
|
134
|
-
it('devrait appeler validateField avec les règles personnalisées', () => {
|
|
134
|
+
it('devrait appeler validateField avec les règles personnalisées', async () => {
|
|
135
135
|
selectedDates.value = new Date()
|
|
136
136
|
|
|
137
137
|
const customRules = [{ type: 'custom', options: {} }]
|
|
@@ -153,7 +153,7 @@ describe('useDateValidation', () => {
|
|
|
153
153
|
successes,
|
|
154
154
|
})
|
|
155
155
|
|
|
156
|
-
validateDates()
|
|
156
|
+
await validateDates()
|
|
157
157
|
expect(mockValidateField).toHaveBeenCalledWith(
|
|
158
158
|
selectedDates.value,
|
|
159
159
|
customRules,
|
|
@@ -161,7 +161,7 @@ describe('useDateValidation', () => {
|
|
|
161
161
|
)
|
|
162
162
|
})
|
|
163
163
|
|
|
164
|
-
it('devrait ajouter l\'erreur de plage si displayRange=true et la plage est invalide', () => {
|
|
164
|
+
it('devrait ajouter l\'erreur de plage si displayRange=true et la plage est invalide', async () => {
|
|
165
165
|
selectedDates.value = [new Date(), new Date()]
|
|
166
166
|
currentRangeIsValid.value = false
|
|
167
167
|
getRangeValidationError.value = 'La date de fin doit être postérieure ou égale à la date de début'
|
|
@@ -181,12 +181,12 @@ describe('useDateValidation', () => {
|
|
|
181
181
|
successes,
|
|
182
182
|
})
|
|
183
183
|
|
|
184
|
-
const result = validateDates()
|
|
184
|
+
const result = await validateDates()
|
|
185
185
|
expect(result.hasError).toBe(true)
|
|
186
186
|
expect(errors.value).toContain('La date de fin doit être postérieure ou égale à la date de début')
|
|
187
187
|
})
|
|
188
188
|
|
|
189
|
-
it('devrait dédoublonner les messages d\'erreur', () => {
|
|
189
|
+
it('devrait dédoublonner les messages d\'erreur', async () => {
|
|
190
190
|
selectedDates.value = [new Date(), new Date()]
|
|
191
191
|
|
|
192
192
|
// Simuler des erreurs dupliquées
|
|
@@ -216,12 +216,12 @@ describe('useDateValidation', () => {
|
|
|
216
216
|
successes,
|
|
217
217
|
})
|
|
218
218
|
|
|
219
|
-
validateDates()
|
|
219
|
+
await validateDates()
|
|
220
220
|
// Même avec 2 appels qui ajoutent la même erreur, on ne devrait avoir qu'une seule occurrence
|
|
221
221
|
expect(errors.value).toEqual(['Erreur dupliquée'])
|
|
222
222
|
})
|
|
223
223
|
|
|
224
|
-
it('devrait forcer la validation avec validateOnSubmit', () => {
|
|
224
|
+
it('devrait forcer la validation avec validateOnSubmit', async () => {
|
|
225
225
|
isUpdatingFromInternal.value = true
|
|
226
226
|
selectedDates.value = null
|
|
227
227
|
|
|
@@ -238,8 +238,64 @@ describe('useDateValidation', () => {
|
|
|
238
238
|
successes,
|
|
239
239
|
})
|
|
240
240
|
|
|
241
|
-
const result = validateOnSubmit()
|
|
241
|
+
const result = await validateOnSubmit()
|
|
242
242
|
expect(result.hasError).toBe(true)
|
|
243
243
|
expect(errors.value).toContain('La date est requise.')
|
|
244
244
|
})
|
|
245
|
+
|
|
246
|
+
it('gère validateField asynchrone dans validateDates', async () => {
|
|
247
|
+
selectedDates.value = new Date('2025-01-01')
|
|
248
|
+
mockValidateField.mockResolvedValue({
|
|
249
|
+
hasError: true,
|
|
250
|
+
hasWarning: false,
|
|
251
|
+
hasSuccess: false,
|
|
252
|
+
state: { errors: ['Erreur async'], warnings: [], successes: [] },
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
const { validateDates } = useDateValidation({
|
|
256
|
+
selectedDates,
|
|
257
|
+
isUpdatingFromInternal,
|
|
258
|
+
currentRangeIsValid,
|
|
259
|
+
getRangeValidationError,
|
|
260
|
+
clearValidation: mockClearValidation,
|
|
261
|
+
validateField: mockValidateField,
|
|
262
|
+
errors,
|
|
263
|
+
warnings,
|
|
264
|
+
successes,
|
|
265
|
+
})
|
|
266
|
+
|
|
267
|
+
const result = await validateDates()
|
|
268
|
+
expect(result.hasError).toBe(true)
|
|
269
|
+
expect(mockValidateField).toHaveBeenCalledTimes(1)
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
it('validateOnSubmit attend la validation asynchrone', async () => {
|
|
273
|
+
selectedDates.value = new Date('2025-01-01')
|
|
274
|
+
mockValidateField.mockImplementation(() => new Promise((resolve) => {
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
resolve({
|
|
277
|
+
hasError: true,
|
|
278
|
+
hasWarning: false,
|
|
279
|
+
hasSuccess: false,
|
|
280
|
+
state: { errors: ['Erreur async submit'], warnings: [], successes: [] },
|
|
281
|
+
})
|
|
282
|
+
}, 0)
|
|
283
|
+
}))
|
|
284
|
+
|
|
285
|
+
const { validateOnSubmit } = useDateValidation({
|
|
286
|
+
selectedDates,
|
|
287
|
+
isUpdatingFromInternal,
|
|
288
|
+
currentRangeIsValid,
|
|
289
|
+
getRangeValidationError,
|
|
290
|
+
clearValidation: mockClearValidation,
|
|
291
|
+
validateField: mockValidateField,
|
|
292
|
+
errors,
|
|
293
|
+
warnings,
|
|
294
|
+
successes,
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
const result = await validateOnSubmit()
|
|
298
|
+
expect(result.hasError).toBe(true)
|
|
299
|
+
expect(mockValidateField).toHaveBeenCalledTimes(1)
|
|
300
|
+
})
|
|
245
301
|
})
|
|
@@ -291,6 +291,45 @@ describe('useInputBlurHandler', () => {
|
|
|
291
291
|
// au lieu d'appeler validateManualInput
|
|
292
292
|
expect(mockUpdateModel).toHaveBeenCalledWith(null)
|
|
293
293
|
})
|
|
294
|
+
|
|
295
|
+
it('attend validateManualInput quand il est asynchrone', async () => {
|
|
296
|
+
displayFormattedDate.value = '01/01/2023'
|
|
297
|
+
|
|
298
|
+
let resolveValidation: ((value: boolean) => void) | undefined
|
|
299
|
+
mockValidateManualInput.mockImplementation(() => new Promise<boolean>((resolve) => {
|
|
300
|
+
resolveValidation = resolve
|
|
301
|
+
}))
|
|
302
|
+
|
|
303
|
+
const { handleInputBlur } = useInputBlurHandler({
|
|
304
|
+
format: 'DD/MM/YYYY',
|
|
305
|
+
displayFormattedDate,
|
|
306
|
+
hasInteracted,
|
|
307
|
+
isManualInputActive,
|
|
308
|
+
isUpdatingFromInternal,
|
|
309
|
+
selectedDates,
|
|
310
|
+
errors,
|
|
311
|
+
validateDateFormat: mockValidateDateFormat,
|
|
312
|
+
parseDate: mockParseDate,
|
|
313
|
+
formatDate: mockFormatDate,
|
|
314
|
+
updateModel: mockUpdateModel,
|
|
315
|
+
validateManualInput: mockValidateManualInput,
|
|
316
|
+
emitBlur: mockEmitBlur,
|
|
317
|
+
})
|
|
318
|
+
|
|
319
|
+
let resolved = false
|
|
320
|
+
const blurPromise = handleInputBlur().then(() => {
|
|
321
|
+
resolved = true
|
|
322
|
+
})
|
|
323
|
+
|
|
324
|
+
await Promise.resolve()
|
|
325
|
+
expect(resolved).toBe(false)
|
|
326
|
+
|
|
327
|
+
resolveValidation?.(true)
|
|
328
|
+
await blurPromise
|
|
329
|
+
|
|
330
|
+
expect(resolved).toBe(true)
|
|
331
|
+
expect(mockValidateManualInput).toHaveBeenCalledWith('01/01/2023')
|
|
332
|
+
})
|
|
294
333
|
})
|
|
295
334
|
|
|
296
335
|
// Nouveaux tests pour les plages de dates
|
|
@@ -98,6 +98,70 @@ describe('useManualDateValidation', () => {
|
|
|
98
98
|
|
|
99
99
|
expect(result).toBe(true)
|
|
100
100
|
expect(errors.value).toHaveLength(0)
|
|
101
|
+
expect(mockValidateDateFormat).not.toHaveBeenCalled()
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
it('devrait retourner true pour un squelette avec format DD/MM/YYYY', () => {
|
|
105
|
+
mockIsDateComplete.mockReturnValue(false)
|
|
106
|
+
|
|
107
|
+
const { validateManualInput } = useManualDateValidation({
|
|
108
|
+
format: 'DD/MM/YYYY',
|
|
109
|
+
hasInteracted,
|
|
110
|
+
errors,
|
|
111
|
+
clearValidation: mockClearValidation,
|
|
112
|
+
validateDateFormat: mockValidateDateFormat,
|
|
113
|
+
isDateComplete: mockIsDateComplete,
|
|
114
|
+
parseDate: mockParseDate,
|
|
115
|
+
validateField: mockValidateField,
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
const result = validateManualInput('__//____')
|
|
119
|
+
|
|
120
|
+
expect(result).toBe(true)
|
|
121
|
+
expect(errors.value).toHaveLength(0)
|
|
122
|
+
expect(mockValidateDateFormat).not.toHaveBeenCalled()
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
it('devrait retourner true pour un squelette avec format YYYY-MM-DD', () => {
|
|
126
|
+
mockIsDateComplete.mockReturnValue(false)
|
|
127
|
+
|
|
128
|
+
const { validateManualInput } = useManualDateValidation({
|
|
129
|
+
format: 'YYYY-MM-DD',
|
|
130
|
+
hasInteracted,
|
|
131
|
+
errors,
|
|
132
|
+
clearValidation: mockClearValidation,
|
|
133
|
+
validateDateFormat: mockValidateDateFormat,
|
|
134
|
+
isDateComplete: mockIsDateComplete,
|
|
135
|
+
parseDate: mockParseDate,
|
|
136
|
+
validateField: mockValidateField,
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
const result = validateManualInput('____-__-__')
|
|
140
|
+
|
|
141
|
+
expect(result).toBe(true)
|
|
142
|
+
expect(errors.value).toHaveLength(0)
|
|
143
|
+
expect(mockValidateDateFormat).not.toHaveBeenCalled()
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
it('devrait retourner true pour un squelette avec format DD.MM.YYYY', () => {
|
|
147
|
+
mockIsDateComplete.mockReturnValue(false)
|
|
148
|
+
|
|
149
|
+
const { validateManualInput } = useManualDateValidation({
|
|
150
|
+
format: 'DD.MM.YYYY',
|
|
151
|
+
hasInteracted,
|
|
152
|
+
errors,
|
|
153
|
+
clearValidation: mockClearValidation,
|
|
154
|
+
validateDateFormat: mockValidateDateFormat,
|
|
155
|
+
isDateComplete: mockIsDateComplete,
|
|
156
|
+
parseDate: mockParseDate,
|
|
157
|
+
validateField: mockValidateField,
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
const result = validateManualInput('__.__.____')
|
|
161
|
+
|
|
162
|
+
expect(result).toBe(true)
|
|
163
|
+
expect(errors.value).toHaveLength(0)
|
|
164
|
+
expect(mockValidateDateFormat).not.toHaveBeenCalled()
|
|
101
165
|
})
|
|
102
166
|
|
|
103
167
|
it('devrait retourner false et ajouter une erreur si le format est invalide', () => {
|
|
@@ -238,4 +302,31 @@ describe('useManualDateValidation', () => {
|
|
|
238
302
|
result = validateManualInput('01/01/2023')
|
|
239
303
|
expect(result).toBe(false)
|
|
240
304
|
})
|
|
305
|
+
|
|
306
|
+
it('devrait gérer validateField asynchrone', async () => {
|
|
307
|
+
mockIsDateComplete.mockReturnValue(true)
|
|
308
|
+
mockValidateDateFormat.mockReturnValue({ isValid: true, message: '' })
|
|
309
|
+
mockParseDate.mockReturnValue(new Date('2023-01-01'))
|
|
310
|
+
mockValidateField.mockResolvedValue({
|
|
311
|
+
hasError: false,
|
|
312
|
+
hasWarning: false,
|
|
313
|
+
hasSuccess: true,
|
|
314
|
+
state: { errors: [], warnings: [], successes: ['Valide async'] },
|
|
315
|
+
})
|
|
316
|
+
|
|
317
|
+
const { validateManualInput } = useManualDateValidation({
|
|
318
|
+
format: 'DD/MM/YYYY',
|
|
319
|
+
hasInteracted,
|
|
320
|
+
errors,
|
|
321
|
+
clearValidation: mockClearValidation,
|
|
322
|
+
validateDateFormat: mockValidateDateFormat,
|
|
323
|
+
isDateComplete: mockIsDateComplete,
|
|
324
|
+
parseDate: mockParseDate,
|
|
325
|
+
validateField: mockValidateField,
|
|
326
|
+
})
|
|
327
|
+
|
|
328
|
+
const result = await validateManualInput('01/01/2023')
|
|
329
|
+
expect(result).toBe(true)
|
|
330
|
+
expect(mockValidateField).toHaveBeenCalledTimes(1)
|
|
331
|
+
})
|
|
241
332
|
})
|