@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, vi } from 'vitest'
|
|
2
|
-
import { mount } from '@vue/test-utils'
|
|
2
|
+
import { mount, flushPromises } from '@vue/test-utils'
|
|
3
3
|
import { VIcon } from 'vuetify/components'
|
|
4
4
|
|
|
5
5
|
import SyTextField from '../SyTextField.vue'
|
|
@@ -15,6 +15,7 @@ describe('SyTextField', () => {
|
|
|
15
15
|
required: true,
|
|
16
16
|
showSuccessMessages: true,
|
|
17
17
|
outlined: true,
|
|
18
|
+
label: 'Test Field',
|
|
18
19
|
},
|
|
19
20
|
})
|
|
20
21
|
})
|
|
@@ -26,7 +27,7 @@ describe('SyTextField', () => {
|
|
|
26
27
|
|
|
27
28
|
it('applies the correct variant style', () => {
|
|
28
29
|
wrapper = mount(SyTextField, {
|
|
29
|
-
props: { variantStyle: 'filled' },
|
|
30
|
+
props: { variantStyle: 'filled', label: 'Test Field' },
|
|
30
31
|
})
|
|
31
32
|
const textField = wrapper.findComponent({ name: 'VTextField' })
|
|
32
33
|
expect(textField.props('variant')).toBe('filled')
|
|
@@ -34,6 +35,7 @@ describe('SyTextField', () => {
|
|
|
34
35
|
|
|
35
36
|
it('renders default slots correctly', () => {
|
|
36
37
|
wrapper = mount(SyTextField, {
|
|
38
|
+
props: { label: 'Test Field' },
|
|
37
39
|
slots: {
|
|
38
40
|
prepend: '<div data-testid="prepend-slot">Prepend Slot Content</div>',
|
|
39
41
|
append: '<div data-testid="append-slot">Append Slot Content</div>',
|
|
@@ -49,6 +51,7 @@ describe('SyTextField', () => {
|
|
|
49
51
|
|
|
50
52
|
it('renders inner slots correctly', () => {
|
|
51
53
|
wrapper = mount(SyTextField, {
|
|
54
|
+
props: { label: 'Test Field' },
|
|
52
55
|
slots: {
|
|
53
56
|
'prepend-inner': '<div data-testid="prepend-inner-slot">Prepend Inner Slot Content</div>',
|
|
54
57
|
'append-inner': '<div data-testid="append-inner-slot">Append Inner Slot Content</div>',
|
|
@@ -66,35 +69,35 @@ describe('SyTextField', () => {
|
|
|
66
69
|
|
|
67
70
|
it('should update icon when validation state changes', async () => {
|
|
68
71
|
wrapper = mount(SyTextField, {
|
|
69
|
-
props: { appendInnerIcon: 'success' as IconType },
|
|
72
|
+
props: { appendInnerIcon: 'success' as IconType, label: 'Test Field' },
|
|
70
73
|
})
|
|
71
74
|
expect(wrapper.props('appendInnerIcon')).toBe('success')
|
|
72
75
|
})
|
|
73
76
|
|
|
74
77
|
it('should update icon when validation state changes with warning', async () => {
|
|
75
78
|
wrapper = mount(SyTextField, {
|
|
76
|
-
props: { appendInnerIcon: 'warning' as IconType },
|
|
79
|
+
props: { appendInnerIcon: 'warning' as IconType, label: 'Test Field' },
|
|
77
80
|
})
|
|
78
81
|
expect(wrapper.props('appendInnerIcon')).toBe('warning')
|
|
79
82
|
})
|
|
80
83
|
|
|
81
84
|
it('should update icon when validation state changes with error', async () => {
|
|
82
85
|
wrapper = mount(SyTextField, {
|
|
83
|
-
props: { appendInnerIcon: 'error' as IconType },
|
|
86
|
+
props: { appendInnerIcon: 'error' as IconType, label: 'Test Field' },
|
|
84
87
|
})
|
|
85
88
|
expect(wrapper.props('appendInnerIcon')).toBe('error')
|
|
86
89
|
})
|
|
87
90
|
|
|
88
91
|
it('should update icon when validation state changes with success', async () => {
|
|
89
92
|
wrapper = mount(SyTextField, {
|
|
90
|
-
props: { appendInnerIcon: 'success' as IconType },
|
|
93
|
+
props: { appendInnerIcon: 'success' as IconType, label: 'Test Field' },
|
|
91
94
|
})
|
|
92
95
|
expect(wrapper.props('appendInnerIcon')).toBe('success')
|
|
93
96
|
})
|
|
94
97
|
|
|
95
98
|
it('emits prepend-icon-click event when prepend icon is clicked', async () => {
|
|
96
99
|
const wrapper = mount(SyTextField, {
|
|
97
|
-
props: { prependIcon: 'info' as IconType },
|
|
100
|
+
props: { prependIcon: 'info' as IconType, label: 'Test Field' },
|
|
98
101
|
})
|
|
99
102
|
|
|
100
103
|
await wrapper.vm.$nextTick()
|
|
@@ -107,7 +110,7 @@ describe('SyTextField', () => {
|
|
|
107
110
|
|
|
108
111
|
it('emits append-icon-click event when append icon is clicked', async () => {
|
|
109
112
|
const wrapper = mount(SyTextField, {
|
|
110
|
-
props: { appendIcon: 'info' as IconType },
|
|
113
|
+
props: { appendIcon: 'info' as IconType, label: 'Test Field' },
|
|
111
114
|
})
|
|
112
115
|
|
|
113
116
|
await wrapper.vm.$nextTick()
|
|
@@ -155,8 +158,13 @@ describe('SyTextField', () => {
|
|
|
155
158
|
label: 'Test Field',
|
|
156
159
|
},
|
|
157
160
|
})
|
|
161
|
+
await wrapper.find('input').trigger('focus')
|
|
162
|
+
await wrapper.vm.$nextTick()
|
|
158
163
|
await wrapper.find('input').trigger('blur')
|
|
159
164
|
await wrapper.vm.$nextTick()
|
|
165
|
+
await flushPromises()
|
|
166
|
+
await wrapper.vm.$nextTick()
|
|
167
|
+
|
|
160
168
|
expect(wrapper.find('.v-messages').text()).toContain('Le champ Test Field est requis')
|
|
161
169
|
})
|
|
162
170
|
|
|
@@ -170,12 +178,16 @@ describe('SyTextField', () => {
|
|
|
170
178
|
}
|
|
171
179
|
|
|
172
180
|
wrapper = mount(SyTextField, {
|
|
173
|
-
props: { customRules: [customRule] },
|
|
181
|
+
props: { customRules: [customRule], label: 'Test Field' },
|
|
174
182
|
})
|
|
175
183
|
|
|
176
184
|
await wrapper.setProps({ modelValue: 'ab' })
|
|
185
|
+
await wrapper.find('input').trigger('focus')
|
|
186
|
+
await wrapper.vm.$nextTick()
|
|
177
187
|
await wrapper.find('input').trigger('blur')
|
|
178
188
|
await wrapper.vm.$nextTick()
|
|
189
|
+
await flushPromises()
|
|
190
|
+
await wrapper.vm.$nextTick()
|
|
179
191
|
|
|
180
192
|
const messages = wrapper.find('.v-messages')
|
|
181
193
|
expect(messages.text()).toContain('Test error message')
|
|
@@ -200,9 +212,12 @@ describe('SyTextField', () => {
|
|
|
200
212
|
},
|
|
201
213
|
})
|
|
202
214
|
|
|
215
|
+
await wrapper.find('input').trigger('focus')
|
|
203
216
|
await wrapper.vm.$nextTick()
|
|
204
217
|
await wrapper.find('input').trigger('blur')
|
|
205
218
|
await wrapper.vm.$nextTick()
|
|
219
|
+
await flushPromises()
|
|
220
|
+
await wrapper.vm.$nextTick()
|
|
206
221
|
|
|
207
222
|
const messages = wrapper.find('.v-messages')
|
|
208
223
|
expect(messages.exists()).toBe(true)
|
|
@@ -237,7 +252,7 @@ describe('SyTextField', () => {
|
|
|
237
252
|
|
|
238
253
|
it('sets generic aria-label when no label and loading', async () => {
|
|
239
254
|
wrapper = mount(SyTextField, {
|
|
240
|
-
props: { loading: true },
|
|
255
|
+
props: { loading: true, label: '' },
|
|
241
256
|
})
|
|
242
257
|
await wrapper.vm.$nextTick()
|
|
243
258
|
const bar = wrapper.find('.v-progress-linear')
|
|
@@ -246,13 +261,91 @@ describe('SyTextField', () => {
|
|
|
246
261
|
})
|
|
247
262
|
|
|
248
263
|
it('maintains input value without validation rules', async () => {
|
|
249
|
-
wrapper = mount(SyTextField
|
|
264
|
+
wrapper = mount(SyTextField, {
|
|
265
|
+
props: { label: 'Test Field' },
|
|
266
|
+
})
|
|
250
267
|
const input = wrapper.find('input')
|
|
251
268
|
|
|
252
269
|
await input.setValue('test value')
|
|
253
270
|
expect(wrapper.emitted('update:modelValue')?.[0]).toEqual(['test value'])
|
|
254
271
|
})
|
|
255
272
|
|
|
273
|
+
it('filters alphabetic characters when type is number', async () => {
|
|
274
|
+
wrapper = mount(SyTextField, {
|
|
275
|
+
props: {
|
|
276
|
+
label: 'Test Field',
|
|
277
|
+
type: 'number',
|
|
278
|
+
},
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
const input = wrapper.find('input')
|
|
282
|
+
const inputElement = input.element as HTMLInputElement
|
|
283
|
+
inputElement.value = '12ab.3e-4'
|
|
284
|
+
|
|
285
|
+
await input.trigger('input')
|
|
286
|
+
|
|
287
|
+
expect(inputElement.value).toBe('12.3e-4')
|
|
288
|
+
expect(wrapper.emitted('update:modelValue')?.at(-1)).toEqual(['12.3e-4'])
|
|
289
|
+
})
|
|
290
|
+
|
|
291
|
+
it('prevents invalid beforeinput data when type is number', async () => {
|
|
292
|
+
wrapper = mount(SyTextField, {
|
|
293
|
+
props: {
|
|
294
|
+
label: 'Test Field',
|
|
295
|
+
type: 'number',
|
|
296
|
+
},
|
|
297
|
+
})
|
|
298
|
+
|
|
299
|
+
const input = wrapper.find('input')
|
|
300
|
+
const event = new InputEvent('beforeinput', {
|
|
301
|
+
data: 'a',
|
|
302
|
+
cancelable: true,
|
|
303
|
+
bubbles: true,
|
|
304
|
+
})
|
|
305
|
+
|
|
306
|
+
input.element.dispatchEvent(event)
|
|
307
|
+
|
|
308
|
+
expect(event.defaultPrevented).toBe(true)
|
|
309
|
+
})
|
|
310
|
+
|
|
311
|
+
it('filters alphabetic characters when type is tel', async () => {
|
|
312
|
+
wrapper = mount(SyTextField, {
|
|
313
|
+
props: {
|
|
314
|
+
label: 'Telephone',
|
|
315
|
+
type: 'tel',
|
|
316
|
+
},
|
|
317
|
+
})
|
|
318
|
+
|
|
319
|
+
const input = wrapper.find('input')
|
|
320
|
+
const inputElement = input.element as HTMLInputElement
|
|
321
|
+
inputElement.value = '+33 ab(0)1-23.45'
|
|
322
|
+
|
|
323
|
+
await input.trigger('input')
|
|
324
|
+
|
|
325
|
+
expect(inputElement.value).toBe('+33 (0)1-23.45')
|
|
326
|
+
expect(wrapper.emitted('update:modelValue')?.at(-1)).toEqual(['+33 (0)1-23.45'])
|
|
327
|
+
})
|
|
328
|
+
|
|
329
|
+
it('prevents invalid beforeinput data when type is tel', async () => {
|
|
330
|
+
wrapper = mount(SyTextField, {
|
|
331
|
+
props: {
|
|
332
|
+
label: 'Telephone',
|
|
333
|
+
type: 'tel',
|
|
334
|
+
},
|
|
335
|
+
})
|
|
336
|
+
|
|
337
|
+
const input = wrapper.find('input')
|
|
338
|
+
const event = new InputEvent('beforeinput', {
|
|
339
|
+
data: 'a',
|
|
340
|
+
cancelable: true,
|
|
341
|
+
bubbles: true,
|
|
342
|
+
})
|
|
343
|
+
|
|
344
|
+
input.element.dispatchEvent(event)
|
|
345
|
+
|
|
346
|
+
expect(event.defaultPrevented).toBe(true)
|
|
347
|
+
})
|
|
348
|
+
|
|
256
349
|
it('validates field immediately when isValidateOnBlur is false', async () => {
|
|
257
350
|
const customRule = {
|
|
258
351
|
type: 'custom',
|
|
@@ -264,6 +357,8 @@ describe('SyTextField', () => {
|
|
|
264
357
|
|
|
265
358
|
wrapper = mount(SyTextField, {
|
|
266
359
|
props: {
|
|
360
|
+
modelValue: '',
|
|
361
|
+
label: 'Test Field',
|
|
267
362
|
customRules: [customRule],
|
|
268
363
|
isValidateOnBlur: false,
|
|
269
364
|
},
|
|
@@ -272,6 +367,12 @@ describe('SyTextField', () => {
|
|
|
272
367
|
await wrapper.setProps({ modelValue: 'ab' })
|
|
273
368
|
await wrapper.vm.$nextTick()
|
|
274
369
|
|
|
370
|
+
// settle all pending promises to ensure validation has completed
|
|
371
|
+
await vi.waitUntil(() => {
|
|
372
|
+
const messages = wrapper.find('.v-messages')
|
|
373
|
+
return messages.text().includes('Test error message')
|
|
374
|
+
})
|
|
375
|
+
|
|
275
376
|
const messages = wrapper.find('.v-messages')
|
|
276
377
|
expect(messages.text()).toContain('Test error message')
|
|
277
378
|
|
|
@@ -279,6 +380,14 @@ describe('SyTextField', () => {
|
|
|
279
380
|
await wrapper.setProps({ modelValue: 'abc' })
|
|
280
381
|
await wrapper.vm.$nextTick()
|
|
281
382
|
|
|
383
|
+
// the async validation should have updated the error messages, so we wait for the next tick before checking the messages again
|
|
384
|
+
await wrapper.vm.$nextTick()
|
|
385
|
+
|
|
386
|
+
await vi.waitUntil(() => {
|
|
387
|
+
const messages = wrapper.find('.v-messages')
|
|
388
|
+
return !messages.text().includes('Test error message')
|
|
389
|
+
})
|
|
390
|
+
|
|
282
391
|
expect(messages.text()).not.toContain('Test error message')
|
|
283
392
|
})
|
|
284
393
|
})
|