-
Notifications
You must be signed in to change notification settings - Fork 160
/
ComponentWithButtons.spec.js
68 lines (53 loc) · 1.55 KB
/
ComponentWithButtons.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { createStore } from "vuex"
import { mount } from "@vue/test-utils"
import ComponentWithButtons from "../../src/components/ComponentWithButtons.vue"
const mutations = {
testMutation: jest.fn()
}
const store = createStore({
mutations
})
describe("ComponentWithButtons", () => {
it("commits a mutation when a button is clicked", async () => {
const wrapper = mount(ComponentWithButtons, {
global: {
plugins: [store]
}
})
wrapper.find(".commit").trigger("click")
await wrapper.vm.$nextTick()
expect(mutations.testMutation).toHaveBeenCalledWith(
{},
{ msg: "Test Commit" }
)
})
it("dispatch a namespaced action when button is clicked", async () => {
const store = createStore()
store.dispatch = jest.fn()
const wrapper = mount(ComponentWithButtons, {
global: {
plugins: [store]
}
})
wrapper.find(".namespaced-dispatch").trigger("click")
await wrapper.vm.$nextTick()
expect(store.dispatch).toHaveBeenCalledWith(
'namespaced/very/deeply/testAction',
{ msg: "Test Namespaced Dispatch" }
)
})
it("dispatches an action when a button is clicked", async () => {
const mockStore = { dispatch: jest.fn() }
const wrapper = mount(ComponentWithButtons, {
global: {
mocks: {
$store: mockStore
}
}
})
wrapper.find(".dispatch").trigger("click")
await wrapper.vm.$nextTick()
expect(mockStore.dispatch).toHaveBeenCalledWith(
"testAction" , { msg: "Test Dispatch" })
})
})