From 78a403c450425ea86fad7df5737a4a53ed4c6714 Mon Sep 17 00:00:00 2001 From: donal <donalspring@gmail.com> Date: Mon, 16 Apr 2018 12:57:45 +0200 Subject: [PATCH] Template for TDD --- tests/unit/javascript/actions.spec.js | 113 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 98 insertions(+), 15 deletions(-) diff --git a/tests/unit/javascript/actions.spec.js b/tests/unit/javascript/actions.spec.js index 4c09aaa..b810653 100644 --- a/tests/unit/javascript/actions.spec.js +++ b/tests/unit/javascript/actions.spec.js @@ -1,45 +1,128 @@ import actions from "@/store/actions"; -import store from "@/store"; import * as all from "../setup.js"; -import axios from 'axios'; -import MockAdapter from 'axios-mock-adapter'; +import axios from "axios"; +import MockAdapter from "axios-mock-adapter"; import sinon from "sinon"; const todos = [ - { id: 1, title: "learn testing", completed: true }, - { id: 2, title: "learn testing 2", completed: false } + { _id: 1, title: "learn testing", completed: true }, + { _id: 2, title: "learn testing 2", completed: false } ]; +let state; -describe("load todos", () => { - it("should call commit to the mutation function twice", (done) => { - const commit = sinon.spy(); +describe("loadTodos", () => { + beforeEach(() => { let mock = new MockAdapter(axios); - mock.onGet('http://localhost:9000/api/todos').reply(200, todos); + mock.onGet("http://localhost:9000/api/todos").reply(200, todos); + }); + it("should call commit to the mutation function twice", done => { + const commit = sinon.spy(); actions.loadTodos({ commit }).then(() => { // console.log(commit) expect(commit.calledTwice).toBe(true); done(); }); }); - it("should first call SET_LOADING", (done) => { + it("should first call SET_LOADING", done => { const commit = sinon.spy(); - let mock = new MockAdapter(axios); - mock.onGet('http://localhost:9000/api/todos').reply(200, todos); actions.loadTodos({ commit }).then(() => { // console.log(commit.firstCall.args[0]) expect(commit.firstCall.args[0]).toBe("SET_TODOS"); done(); }); }); - it("should second call SET_TODOS", (done) => { + it("should second call SET_TODOS", done => { const commit = sinon.spy(); - let mock = new MockAdapter(axios); - mock.onGet('http://localhost:9000/api/todos').reply(200, todos); actions.loadTodos({ commit }).then(() => { // console.log(commit) expect(commit.secondCall.args[0]).toBe("SET_LOADING"); done(); }); }); +}); + +describe("addTodos", () => { + beforeEach(() => { + state = {}; + let mock = new MockAdapter(axios); + // mock.onPost(/http:\/\/localhost:9000\/api\/todos\/.*/, {}) + mock.onPost("http://localhost:9000/api/todos").reply(200, todos); + }); + it("should call commit to the mutation function once", done => { + const commit = sinon.spy(); + state.newTodo = "Learn some mocking"; + actions.addTodo({ commit, state }).then(() => { + // console.log(commit) + expect(commit.calledOnce).toBe(true); + done(); + }); + }); + it("should first call ADD_TODO", done => { + const commit = sinon.spy(); + state.newTodo = "Learn some mocking"; + actions.addTodo({ commit, state }).then(() => { + // console.log(commit.firstCall.args[0]) + expect(commit.firstCall.args[0]).toBe("ADD_TODO"); + done(); + }); + }); +}); + +describe("setNewTodo", () => { + it("should call SET_NEW_TODO", () => { + const commit = sinon.spy(); + actions.setNewTodo({ commit, todo: "learn stuff about mockin" }); + expect(commit.firstCall.args[0]).toBe("SET_NEW_TODO"); + }); +}); + +describe("clearNewTodo", () => { + it("should call CLEAR_NEW_TODO", () => { + const commit = sinon.spy(); + actions.clearNewTodo({ commit }); + expect(commit.firstCall.args[0]).toBe("CLEAR_NEW_TODO"); + }); +}); + +describe("clearTodos", () => { + it("should call CLEAR_ALL_TODOS when all is true", () => { + const commit = sinon.spy(); + state.todos = todos; + actions.clearTodos({ commit, state }, true); + expect(commit.firstCall.args[0]).toBe("CLEAR_ALL_TODOS"); + }); + + it("should call CLEAR_ALL_DONE_TODOS when all is not passed", () => { + const commit = sinon.spy(); + state.todos = todos; + actions.clearTodos({ commit, state }); + expect(commit.firstCall.args[0]).toBe("CLEAR_ALL_DONE_TODOS"); + }); +}); + +describe("updateTodo", () => { + beforeEach(() => { + state = {}; + let mock = new MockAdapter(axios); + mock.onPut("http://localhost:9000/api/todos/1").reply(200, todos); + }); + it("should call commit to the mutation function once", done => { + const commit = sinon.spy(); + state.todos = todos; + actions.updateTodo({ commit, state }, { id: 1 }).then(() => { + expect(commit.calledOnce).toBe(true); + done(); + }); + }); + it("should call MARK_TODO_COMPLETED", done => { + const commit = sinon.spy(); + state.todos = todos; + actions.updateTodo({ commit, state }, { id: 1 }).then(() => { + // console.log(commit.firstCall.args[0]) + expect(commit.firstCall.args[0]).toBe("MARK_TODO_COMPLETED"); + done(); + }); + }); + // TODO - test goes here! }); -- Gitblit v1.9.3