UNPKG

@mozaic-ds/vue

Version:

Mozaic-Vue is the Vue.js implementation of ADEO Design system

79 lines (68 loc) 2.16 kB
import { mount } from '@vue/test-utils'; import MStepperInline from './MStepperInline.vue'; import { describe, it, expect } from 'vitest'; describe('MStepperInline', () => { const defaultSteps = [ { label: 'Step 1' }, { label: 'Step 2' }, { label: 'Step 3' }, ]; it('renders correctly with default props', () => { const wrapper = mount(MStepperInline, { props: { currentStep: 1, steps: defaultSteps, }, }); expect(wrapper.exists()).toBe(true); expect(wrapper.findAll('.mc-stepper-inline__item').length).toBe( defaultSteps.length, ); expect(wrapper.find('.mc-stepper-inline__label').text()).toContain( 'Step 1', ); }); it('displays additional information when provided', () => { const stepsWithInfo = [ { label: 'Step 1', additionalInfo: 'Info 1' }, { label: 'Step 2', additionalInfo: 'Info 2' }, ]; const wrapper = mount(MStepperInline, { props: { currentStep: 1, steps: stepsWithInfo, }, }); expect(wrapper.findAll('.mc-stepper-inline__additional').length).toBe( stepsWithInfo.length, ); expect(wrapper.find('.mc-stepper-inline__additional').text()).toBe( 'Info 1', ); }); it('marks the correct step as active', async () => { const wrapper = mount(MStepperInline, { props: { currentStep: 2, steps: defaultSteps, }, }); const labels = wrapper.findAll('.mc-stepper-inline__label'); expect(labels[1].classes()).toContain('is-current'); expect(labels[0].classes()).not.toContain('is-current'); await wrapper.setProps({ currentStep: 3 }); expect(labels[2].classes()).toContain('is-current'); }); it('marks completed steps', () => { const wrapper = mount(MStepperInline, { props: { currentStep: 3, steps: defaultSteps, }, }); const items = wrapper.findAll('.mc-stepper-inline__item'); expect(items[0].classes()).toContain('is-completed'); expect(items[1].classes()).toContain('is-completed'); expect(items[2].classes()).not.toContain('is-completed'); }); });