Untitled
unknown
plain_text
2 years ago
1.4 kB
33
Indexable
// myStore.js
import { createPinia } from 'pinia';
export const pinia = createPinia();
export const myStore = pinia.store({
id: 'myStore',
state: () => ({
value: 0,
}),
actions: {
increment() {
this.value++;
},
},
});
// myStore.test.js
import { mount } from '@vue/test-utils';
import MyComponent from '@/components/MyComponent.vue';
import { pinia, myStore } from '@/myStore';
// Замокируем стор
jest.mock('@/myStore', () => ({
...jest.requireActual('@/myStore'),
myStore: pinia.store({
id: 'myStore',
state: () => ({
value: 42,
}),
actions: {
increment: jest.fn(),
},
}),
}));
describe('MyComponent', () => {
it('renders with mocked store', async () => {
// Монтируем компонент, который использует стор
const wrapper = mount(MyComponent);
// Ждем завершения обновлений
await wrapper.vm.$nextTick();
// Проверяем, что компонент рендерится с ожидаемым значением
expect(wrapper.text()).toContain('Value: 42');
// Проверяем, что метод increment вызывается при нажатии кнопки
await wrapper.find('button').trigger('click');
expect(myStore.increment).toHaveBeenCalled();
});
});
Editor is loading...
Leave a Comment