/* eslint-env mocha */ import React from "react" import { fromJSOrdered } from "core/utils" import expect, { createSpy } from "expect" import { shallow } from "enzyme" import Curl from "components/curl" import LiveResponse from "components/live-response" import ResponseBody from "components/response-body" describe("", function(){ let request = fromJSOrdered({ credentials: "same-origin", headers: { accept: "application/xml" }, url: "http://petstore.swagger.io/v2/pet/1" }) let mutatedRequest = fromJSOrdered({ credentials: "same-origin", headers: { accept: "application/xml", mutated: "header" }, url: "http://petstore.swagger.io/v2/pet/1" }) let requests = { request: request, mutatedRequest: mutatedRequest } const tests = [ { showMutatedRequest: true, expected: { request: "mutatedRequest", requestForCalls: 0, mutatedRequestForCalls: 1 } }, { showMutatedRequest: false, expected: { request: "request", requestForCalls: 1, mutatedRequestForCalls: 0 } } ] tests.forEach(function(test) { it("passes " + test.expected.request + " to Curl when showMutatedRequest = " + test.showMutatedRequest, function() { // Given let response = fromJSOrdered({ status: 200, url: "http://petstore.swagger.io/v2/pet/1", headers: {}, text: "", }) let mutatedRequestForSpy = createSpy().andReturn(mutatedRequest) let requestForSpy = createSpy().andReturn(request) let components = { curl: Curl, responseBody: ResponseBody } let props = { response: response, specSelectors: { mutatedRequestFor: mutatedRequestForSpy, requestFor: requestForSpy, }, pathMethod: [ "/one", "get" ], getComponent: (c) => { return components[c] }, displayRequestDuration: true, getConfigs: () => ({ showMutatedRequest: test.showMutatedRequest }) } // When let wrapper = shallow() // Then expect(mutatedRequestForSpy.calls.length).toEqual(test.expected.mutatedRequestForCalls) expect(requestForSpy.calls.length).toEqual(test.expected.requestForCalls) const curl = wrapper.find(Curl) expect(curl.length).toEqual(1) expect(curl.props().request).toBe(requests[test.expected.request]) }) }) })