UNPKG

farmbot-web-frontend

Version:
106 lines (96 loc) 3.77 kB
import { deleteRegimen, saveRegimen } from "../../regimens/actions"; import { Regimen } from "../../regimens/interfaces"; import { RegimensState } from "../../regimens/interfaces"; import * as toast from "../../logger"; let moxios = require("moxios"); describe("Regimen actions", function () { let initialState: RegimensState; let regimen: Regimen; beforeEach(() => { moxios.install(); regimen = { id: 123, name: "Whatevs", color: "red", regimen_items: [], dirty: true }; initialState = { all: [regimen], current: 0 }; }); afterEach(() => { moxios.uninstall(); }); it("deletes a Regimen", (done) => { let spy = jasmine.createSpy("delete_success"); let thunk = deleteRegimen(regimen, "//altavista.com"); let response = { id: 1, firstName: "Fred", lastName: "Flintstone" }; spyOn(toast, "success"); thunk(spy); moxios .wait(() => { let request = moxios.requests.mostRecent(); request .respondWith({ status: 200, response }) .then(function () { // Expect the request to have been called with the regimen expect(spy).toHaveBeenCalledWith( { type: "DELETE_REGIMEN_OK", payload: regimen }); expect(toast.success).toHaveBeenCalledWith("Regimen deleted."); done(); }); }); }); it("fails to delete a Regimen", (done) => { let spy = jasmine.createSpy("delete_fail"); let thunk = deleteRegimen(regimen, "//altavista.com"); spyOn(toast, "error"); let response = { id: 1, firstName: "Fred", lastName: "Flintstone" }; thunk(spy); moxios .wait(() => { let request = moxios.requests.mostRecent(); request .respondWith({ status: 404, response }) .then(function () { expect(toast.error).toHaveBeenCalledWith("Unable to delete regimen."); done(); }); }); }); it("saves a Regimen", (done) => { let spy = jasmine.createSpy("save_success"); let thunk = saveRegimen(regimen, "http://www.pmichaud.com/toast/"); let response = { id: 1, firstName: "Fred", lastName: "Flintstone" }; spyOn(toast, "success"); thunk(spy); moxios .wait(() => { let request = moxios.requests.mostRecent(); request .respondWith({ status: 200, response }) .then(function () { expect(toast.success).toHaveBeenCalledWith("Regimen saved."); done(); }); }); }); it("fails to save a Regimen", (done) => { let spy = jasmine.createSpy("save_fail"); let thunk = saveRegimen(regimen, "http://toastytech.com/evil/"); let response = { wrong: "does not work" }; spyOn(toast, "error"); thunk(spy); moxios .wait(() => { let request = moxios.requests.mostRecent(); request .respondWith({ status: 404, response }) .then(function () { expect(toast.error).toHaveBeenCalledWith("Wrong does not work.", "Unable to save regimen."); done(); }); }); }); });