73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
/* 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())
|
|
})
|
|
})
|
|
})
|