/* eslint-env mocha */ import expect from "expect" import { fromJS } from "immutable" import { parameterValues, contentTypeValues, operationScheme } from "corePlugins/spec/selectors" describe("spec plugin - selectors", function(){ describe("parameterValue", function(){ it("should return Map({}) if no path found", function(){ // Given const spec = fromJS({ }) // When let paramValues = parameterValues(spec, ["/one", "get"]) // Then expect(paramValues.toJS()).toEqual({}) }) it("should return a hash of [parameterName]: value", function(){ // Given const spec = fromJS({ resolved: { paths: { "/one": { get: { parameters: [ { name: "one", value: 1}, { name: "two", value: "duos"} ] } } } } }) // When let paramValues = parameterValues(spec, ["/one", "get"]) // Then expect(paramValues.toJS()).toEqual({ one: 1, two: "duos" }) }) }) describe("contentTypeValues", function(){ it("should return { requestContentType, responseContentType } from an operation", function(){ // Given let state = fromJS({ resolved: { paths: { "/one": { get: { "consumes_value": "one", "produces_value": "two" } } } } }) // When let contentTypes = contentTypeValues(state, [ "/one", "get" ]) // Then expect(contentTypes.toJS()).toEqual({ requestContentType: "one", responseContentType: "two" }) }) it("should be ok, if no operation found", function(){ // Given let state = fromJS({ }) // When let contentTypes = contentTypeValues(state, [ "/one", "get" ]) // Then expect(contentTypes.toJS()).toEqual({ requestContentType: undefined, responseContentType: undefined }) }) }) describe("operationScheme", function(){ it("should return the correct scheme for a remote spec that doesn't specify a scheme", function(){ // Given let state = fromJS({ url: "https://generator.swagger.io/api/swagger.json", resolved: { paths: { "/one": { get: { "consumes_value": "one", "produces_value": "two" } } } } }) // When let scheme = operationScheme(state, ["/one"], "get") // Then expect(scheme).toEqual("https") }) // it("should be ok, if no operation found", function(){ // // Given // let state = fromJS({ }) // // // When // let contentTypes = contentTypeValues(state, [ "/one", "get" ]) // // Then // expect(contentTypes.toJS()).toEqual({ // requestContentType: undefined, // responseContentType: undefined // }) // }) }) })