info-wrapper.jsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import React from "react"
  2. import { mount } from "enzyme"
  3. import { fromJS } from "immutable"
  4. import InfoContainer from "containers/info"
  5. describe("<InfoContainer/>", function () {
  6. const components = {
  7. info: () => <span className="mocked-info"/>
  8. }
  9. const mockedProps = {
  10. specSelectors: {
  11. info () {},
  12. url () {},
  13. basePath () {},
  14. host () {},
  15. externalDocs () {},
  16. },
  17. oas3Selectors: {
  18. selectedServer () {},
  19. },
  20. getComponent: c => components[c]
  21. }
  22. it("renders Info inside InfoContainer if info is provided", function () {
  23. // Given
  24. let props = {...mockedProps}
  25. props.specSelectors = {...mockedProps.specSelectors}
  26. props.specSelectors.info = function () {return fromJS(["info1", "info2"])}
  27. // When
  28. let wrapper = mount(<InfoContainer {...props}/>)
  29. // Then
  30. const renderedInfo = wrapper.find("span.mocked-info")
  31. expect(renderedInfo.length).toEqual(1)
  32. })
  33. it("does not render Info inside InfoContainer if no info is provided", function () {
  34. // Given
  35. let props = {...mockedProps}
  36. props.specSelectors = {...mockedProps.specSelectors}
  37. props.specSelectors.info = function () {return fromJS([])}
  38. // When
  39. let wrapper = mount(<InfoContainer {...props}/>)
  40. // Then
  41. const renderedInfo = wrapper.find("span.mocked-info")
  42. expect(renderedInfo.length).toEqual(0)
  43. })
  44. it("does not render Info inside InfoContainer if info is undefined", function () {
  45. // Given
  46. let props = {...mockedProps}
  47. // When
  48. let wrapper = mount(<InfoContainer {...props}/>)
  49. // Then
  50. const renderedInfo = wrapper.find("span.mocked-info")
  51. expect(renderedInfo.length).toEqual(0)
  52. })
  53. })