You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

86 lines
2.4 KiB

  1. /* eslint-env mocha */
  2. import React from "react"
  3. import { fromJSOrdered } from "core/utils"
  4. import expect, { createSpy } from "expect"
  5. import { shallow } from "enzyme"
  6. import Curl from "components/curl"
  7. import LiveResponse from "components/live-response"
  8. import ResponseBody from "components/response-body"
  9. describe("<LiveResponse/>", function(){
  10. let request = fromJSOrdered({
  11. credentials: "same-origin",
  12. headers: {
  13. accept: "application/xml"
  14. },
  15. url: "http://petstore.swagger.io/v2/pet/1"
  16. })
  17. let mutatedRequest = fromJSOrdered({
  18. credentials: "same-origin",
  19. headers: {
  20. accept: "application/xml",
  21. mutated: "header"
  22. },
  23. url: "http://petstore.swagger.io/v2/pet/1"
  24. })
  25. let requests = {
  26. request: request,
  27. mutatedRequest: mutatedRequest
  28. }
  29. const tests = [
  30. { showMutatedRequest: true, expected: { request: "mutatedRequest", requestForCalls: 0, mutatedRequestForCalls: 1 } },
  31. { showMutatedRequest: false, expected: { request: "request", requestForCalls: 1, mutatedRequestForCalls: 0 } }
  32. ]
  33. tests.forEach(function(test) {
  34. it("passes " + test.expected.request + " to Curl when showMutatedRequest = " + test.showMutatedRequest, function() {
  35. // Given
  36. let response = fromJSOrdered({
  37. status: 200,
  38. url: "http://petstore.swagger.io/v2/pet/1",
  39. headers: {},
  40. text: "<response/>",
  41. })
  42. let mutatedRequestForSpy = createSpy().andReturn(mutatedRequest)
  43. let requestForSpy = createSpy().andReturn(request)
  44. let components = {
  45. curl: Curl,
  46. responseBody: ResponseBody
  47. }
  48. let props = {
  49. response: response,
  50. specSelectors: {
  51. mutatedRequestFor: mutatedRequestForSpy,
  52. requestFor: requestForSpy,
  53. },
  54. pathMethod: [ "/one", "get" ],
  55. getComponent: (c) => {
  56. return components[c]
  57. },
  58. displayRequestDuration: true,
  59. getConfigs: () => ({ showMutatedRequest: test.showMutatedRequest })
  60. }
  61. // When
  62. let wrapper = shallow(<LiveResponse {...props}/>)
  63. // Then
  64. expect(mutatedRequestForSpy.calls.length).toEqual(test.expected.mutatedRequestForCalls)
  65. expect(requestForSpy.calls.length).toEqual(test.expected.requestForCalls)
  66. const curl = wrapper.find(Curl)
  67. expect(curl.length).toEqual(1)
  68. expect(curl.props().request).toBe(requests[test.expected.request])
  69. })
  70. })
  71. })