diff --git a/app/components/malio/select/SelectCheckbox.test.ts b/app/components/malio/select/SelectCheckbox.test.ts index 3be3f17..350b881 100644 --- a/app/components/malio/select/SelectCheckbox.test.ts +++ b/app/components/malio/select/SelectCheckbox.test.ts @@ -1,5 +1,5 @@ import {describe, expect, it} from 'vitest' -import {mount} from '@vue/test-utils' +import {mount, renderToString} from '@vue/test-utils' import type {DefineComponent} from 'vue' import SelectCheckbox from './SelectCheckbox.vue' @@ -9,7 +9,7 @@ type Option = { } type SelectCheckboxProps = { - modelValue: Array + modelValue?: Array options?: Option[] emptyOptionLabel?: string label?: string @@ -38,6 +38,18 @@ const options: Option[] = [ ] describe('MalioSelectCheckbox', () => { + it('rend sans planter quand modelValue n’est pas fourni (non contrôlé)', () => { + expect(() => + mount(SelectCheckboxForTest, {props: {label: 'Catégories', options}}), + ).not.toThrow() + }) + + it('rend en SSR sans planter quand modelValue est absent (cause du crash playground)', async () => { + await expect( + renderToString(SelectCheckboxForTest, {props: {label: 'Catégories', readonly: true, options}}), + ).resolves.toBeTruthy() + }) + it('renders checkbox inputs for options', async () => { const wrapper = mount(SelectCheckboxForTest, { props: {modelValue: [], options}, diff --git a/app/components/malio/select/SelectCheckbox.vue b/app/components/malio/select/SelectCheckbox.vue index 1cc0f78..a0f8364 100644 --- a/app/components/malio/select/SelectCheckbox.vue +++ b/app/components/malio/select/SelectCheckbox.vue @@ -244,7 +244,7 @@ type Option = { value: string | number } const props = withDefaults(defineProps<{ - modelValue: Array + modelValue?: Array options?: Option[] emptyOptionLabel?: string label?: string @@ -264,6 +264,7 @@ const props = withDefaults(defineProps<{ noOptionsText?: string required?: boolean }>(), { + modelValue: () => [], options: () => [], emptyOptionLabel: '', label: '',