/* eslint-env mocha */ import expect from "expect" import { fromJS } from "immutable" import reducer from "corePlugins/spec/reducers" describe("spec plugin - reducer", function(){ describe("update operation value", function() { it("should update the operation at the specified key", () => { const updateOperationValue = reducer["spec_update_operation_value"] const state = fromJS({ resolved: { "paths": { "/pet": { "post": { "description": "my operation" } } } } }) let result = updateOperationValue(state, { payload: { path: ["/pet", "post"], value: "application/json", key: "consumes_value" } }) let expectedResult = { resolved: { "paths": { "/pet": { "post": { "description": "my operation", "consumes_value": "application/json" } } } } } expect(result.toJS()).toEqual(expectedResult) }) it("shouldn't throw an error if we try to update the consumes_value of a null operation", () => { const updateOperationValue = reducer["spec_update_operation_value"] const state = fromJS({ resolved: { "paths": { "/pet": { "post": null } } } }) let result = updateOperationValue(state, { payload: { path: ["/pet", "post"], value: "application/json", key: "consumes_value" } }) expect(result.toJS()).toEqual(state.toJS()) }) }) describe("set response value", function() { it("should combine the response and error objects", () => { const setResponse = reducer["spec_set_response"] const path = "/pet/post" const method = "POST" const state = fromJS({}) const result = setResponse(state, { payload: { path: path, method: method, res: { error: true, err: { message: "Not Found", name: "Error", response: { data: "response data", headers: { key: "value" }, ok: false, status: 404, statusText: "Not Found" }, status: 404, statusCode: 404 } } } }) let expectedResult = { error: true, message: "Not Found", name: "Error", data: "response data", headers: { key: "value" }, ok: false, status: 404, statusCode: 404, statusText: "Not Found" } const response = result.getIn(["responses", path, method]).toJS() expect(response).toEqual(expectedResult) }) }) })