import React from "react" import expect from "expect" import { shallow } from "enzyme" import { fromJS } from "immutable" import ObjectModel from "components/object-model" import ModelExample from "components/model-example" import Immutable from "immutable" import Model from "components/model" import ModelCollapse from "components/model-collapse" import { inferSchema } from "corePlugins/samples/fn" describe("", function() { const dummyComponent = () => null const components = { "JumpToPath" : dummyComponent, "Markdown" : dummyComponent, "Model" : Model, "ModelCollapse" : ModelCollapse } const props = { getComponent: c => components[c], isRef : false, schema: Immutable.fromJS( { "properties": { // Note reverse order: c, b, a c: { type: "integer", name: "c" }, b: { type: "boolean", name: "b" }, a: { type: "string", name: "a" } } } ), specSelectors: { isOAS3(){ return false } }, className: "for-test" } it("renders a callapsible header", function(){ const wrapper = shallow() const renderedModelCollapse = wrapper.find(ModelCollapse) expect(renderedModelCollapse.length).toEqual(1) }) it("renders the object properties in order", function() { const wrapper = shallow() const renderedModel = wrapper.find(Model) expect(renderedModel.length).toEqual(3) // Assert the schema's properties have maintained their order //const modelExampleSchemaProperties = renderedModel.props().schema.toJS().properties console.log(renderedModel.get(0).props); expect(renderedModel.get(0).props.schema.get("name")).toEqual("c") expect(renderedModel.get(1).props.schema.get("name")).toEqual("b") expect(renderedModel.get(2).props.schema.get("name")).toEqual("a") //expect( Object.keySeq(modelExampleSchemaProperties) ).toEqual(["c", "b", "a"]) }) })