matomo / plugins /CoreHome /vue /src /DateRangePicker /DateRangePicker.spec.ts
Leon4gr45's picture
Upload source files chunk 27
7929f62 verified
Raw
History Blame Contribute Delete
1.39 kB
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
import { mount } from '@vue/test-utils';
import DateRangePicker from './DateRangePicker.vue';
describe('DateRangePicker', () => {
function mountPicker(customProps = {}) {
return mount(DateRangePicker, {
props: {
startDate: '2026-03-11',
endDate: '2026-06-08',
disabled: false,
...customProps,
},
global: {
mocks: {
translate: (key: string) => key,
},
stubs: {
DatePicker: true,
},
},
});
}
it('does not emit rangeChange when syncing new prop values from the parent', async () => {
const wrapper = mountPicker();
expect(wrapper.emitted('rangeChange')).toBeUndefined();
await wrapper.setProps({
startDate: '2026-05-10',
endDate: '2026-06-08',
});
expect(wrapper.emitted('rangeChange')).toBeUndefined();
});
it('emits rangeChange for direct user edits', async () => {
const wrapper = mountPicker();
(wrapper.vm as unknown as { setStartRangeDateFromStr: (value: string) => void })
.setStartRangeDateFromStr('2026-05-10');
expect(wrapper.emitted('rangeChange')?.[0]?.[0]).toEqual({
start: '2026-05-10',
end: '2026-06-08',
});
});
});