/* eslint-disable */
|
import { shallow, createLocalVue } from "@vue/test-utils";
|
import Vuex from "vuex";
|
import ListOfTodos from "@/components/ListOfTodos.vue";
|
|
import * as all from "../setup.js";
|
|
const localVue = createLocalVue();
|
|
localVue.use(Vuex);
|
|
describe("ListOfTodos.vue", () => {
|
let store;
|
const todos = [
|
{
|
title: "Learn awesome things about Labs",
|
completed: false,
|
important: false
|
}
|
];
|
const actions = {
|
loadTodos: jest.fn()
|
};
|
const getters = {
|
todos: jest.fn()
|
};
|
beforeEach(() => {
|
store = new Vuex.Store({
|
state: {},
|
propsData: { todos },
|
actions,
|
getters
|
});
|
});
|
|
it("calls the loadTodos function from actionsjs when created", () => {
|
const wrapper = shallow(ListOfTodos, { store, localVue });
|
expect(wrapper).toBeTruthy();
|
expect(actions.loadTodos).toHaveBeenCalled();
|
});
|
|
it("maps getters with todos when computed", () => {
|
const wrapper = shallow(ListOfTodos, { store, localVue });
|
expect(wrapper).toBeTruthy();
|
expect(getters.todos).toHaveBeenCalled();
|
});
|
|
it("has the expected html structure", () => {
|
const wrapper = shallow(ListOfTodos, { store, localVue });
|
expect(wrapper.element).toMatchSnapshot();
|
});
|
});
|