schemes-wrapper.jsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import React from "react"
  2. import { mount } from "enzyme"
  3. import { fromJS } from "immutable"
  4. import SchemesContainer from "containers/schemes"
  5. import Schemes from "components/schemes"
  6. import { Col } from "components/layout-utils"
  7. describe("<SchemesContainer/>", function(){
  8. const components = {
  9. schemes: Schemes,
  10. Col,
  11. authorizeBtn: () => <span className="mocked-button" id="mocked-button" />
  12. }
  13. const mockedProps = {
  14. specSelectors: {
  15. securityDefinitions() {},
  16. operationScheme() {},
  17. schemes() {}
  18. },
  19. specActions: {
  20. setScheme() {}
  21. },
  22. getComponent: c => components[c]
  23. }
  24. const twoSecurityDefinitions = {
  25. "petstore_auth": {
  26. "type": "oauth2",
  27. "authorizationUrl": "http://petstore.swagger.io/oauth/dialog",
  28. "flow": "implicit",
  29. "scopes": {
  30. "write:pets": "modify pets in your account",
  31. "read:pets": "read your pets"
  32. }
  33. },
  34. "api_key": {
  35. "type": "apiKey",
  36. "name": "api_key",
  37. "in": "header"
  38. }
  39. }
  40. it("renders Schemes inside SchemesContainer if schemes are provided", function(){
  41. // Given
  42. let props = {...mockedProps}
  43. props.specSelectors = {...mockedProps.specSelectors}
  44. props.specSelectors.operationScheme = function() {return "http"}
  45. props.specSelectors.schemes = function() {return fromJS(["http", "https"])}
  46. // When
  47. let wrapper = mount(<SchemesContainer {...props}/>)
  48. // Then
  49. const renderedSchemes = wrapper.find(Schemes)
  50. expect(renderedSchemes.length).toEqual(1)
  51. })
  52. it("does not render Schemes inside SchemeWrapper if empty array of schemes is provided", function(){
  53. // Given
  54. let props = {...mockedProps}
  55. props.specSelectors = {...mockedProps.specSelectors}
  56. props.specSelectors.schemes = function() {return fromJS([])}
  57. // When
  58. let wrapper = mount(<SchemesContainer {...props}/>)
  59. // Then
  60. const renderedSchemes = wrapper.find(Schemes)
  61. expect(renderedSchemes.length).toEqual(0)
  62. })
  63. it("does not render Schemes inside SchemeWrapper if provided schemes are undefined", function(){
  64. // Given
  65. let props = {...mockedProps}
  66. props.specSelectors = {...mockedProps.specSelectors}
  67. props.specSelectors.schemes = function() {return undefined}
  68. // When
  69. let wrapper = mount(<SchemesContainer {...props}/>)
  70. // Then
  71. const renderedSchemes = wrapper.find(Schemes)
  72. expect(renderedSchemes.length).toEqual(0)
  73. })
  74. })