25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

117 satır
3.7 KiB

  1. /* eslint-env mocha */
  2. import React from "react"
  3. import expect, { createSpy } from "expect"
  4. import { shallow } from "enzyme"
  5. import ModelExample from "components/model-example"
  6. import ModelComponent from "components/model-wrapper"
  7. describe("<ModelExample/>", function(){
  8. // Given
  9. let components = {
  10. ModelWrapper: ModelComponent
  11. }
  12. let props = {
  13. getComponent: (c) => {
  14. return components[c]
  15. },
  16. specSelectors: {},
  17. schema: {},
  18. example: "{\"example\": \"value\"}",
  19. isExecute: false,
  20. getConfigs: () => ({
  21. defaultModelRendering: "model",
  22. defaultModelExpandDepth: 1
  23. })
  24. }
  25. let exampleSelectedTestInputs = [
  26. { defaultModelRendering: "model", isExecute: true },
  27. { defaultModelRendering: "example", isExecute: true },
  28. { defaultModelRendering: "example", isExecute: false },
  29. { defaultModelRendering: "othervalue", isExecute: true },
  30. { defaultModelRendering: "othervalue", isExecute: false }
  31. ]
  32. let modelSelectedTestInputs = [
  33. { defaultModelRendering: "model", isExecute: false }
  34. ]
  35. it("renders model and example tabs", function(){
  36. // When
  37. let wrapper = shallow(<ModelExample {...props}/>)
  38. // Then should render tabs
  39. expect(wrapper.find("div > ul.tab").length).toEqual(1)
  40. let tabs = wrapper.find("div > ul.tab").children()
  41. expect(tabs.length).toEqual(2)
  42. tabs.forEach((node) => {
  43. expect(node.length).toEqual(1)
  44. expect(node.name()).toEqual("li")
  45. expect(node.hasClass("tabitem")).toEqual(true)
  46. })
  47. expect(tabs.at(0).text()).toEqual("Example Value")
  48. expect(tabs.at(1).text()).toEqual("Model")
  49. })
  50. exampleSelectedTestInputs.forEach(function(testInputs) {
  51. it("example tab is selected if isExecute = " + testInputs.isExecute + " and defaultModelRendering = " + testInputs.defaultModelRendering, function(){
  52. // When
  53. props.isExecute = testInputs.isExecute
  54. props.getConfigs = () => ({
  55. defaultModelRendering: testInputs.defaultModelRendering,
  56. defaultModelExpandDepth: 1
  57. })
  58. let wrapper = shallow(<ModelExample {...props}/>)
  59. // Then
  60. let tabs = wrapper.find("div > ul.tab").children()
  61. let exampleTab = tabs.at(0)
  62. expect(exampleTab.hasClass("active")).toEqual(true)
  63. let modelTab = tabs.at(1)
  64. expect(modelTab.hasClass("active")).toEqual(false)
  65. expect(wrapper.find("div > div").length).toEqual(1)
  66. expect(wrapper.find("div > div").text()).toEqual(props.example)
  67. })
  68. })
  69. modelSelectedTestInputs.forEach(function(testInputs) {
  70. it("model tab is selected if isExecute = " + testInputs.isExecute + " and defaultModelRendering = " + testInputs.defaultModelRendering, function(){
  71. // When
  72. props.isExecute = testInputs.isExecute
  73. props.getConfigs = () => ({
  74. defaultModelRendering: testInputs.defaultModelRendering,
  75. defaultModelExpandDepth: 1
  76. })
  77. let wrapper = shallow(<ModelExample {...props}/>)
  78. // Then
  79. let tabs = wrapper.find("div > ul.tab").children()
  80. let exampleTab = tabs.at(0)
  81. expect(exampleTab.hasClass("active")).toEqual(false)
  82. let modelTab = tabs.at(1)
  83. expect(modelTab.hasClass("active")).toEqual(true)
  84. expect(wrapper.find("div > div").length).toEqual(1)
  85. expect(wrapper.find("div > div").find(ModelComponent).props().expandDepth).toBe(1)
  86. })
  87. })
  88. it("passes defaultModelExpandDepth to ModelComponent", function(){
  89. // When
  90. let expandDepth = 0
  91. props.isExecute = false
  92. props.getConfigs = () => ({
  93. defaultModelRendering: "model",
  94. defaultModelExpandDepth: expandDepth
  95. })
  96. let wrapper = shallow(<ModelExample {...props}/>)
  97. // Then
  98. expect(wrapper.find("div > div").find(ModelComponent).props().expandDepth).toBe(expandDepth)
  99. })
  100. })