improvement: render OAS3 parameter type formats (#5796)
* Feature: Render OAS3 parameter type formats * Add more test cases to parameter-row * Update test/mocha/components/parameter-row.jsx Co-Authored-By: Helen Kosova <hkosova@users.noreply.github.com> * Update src/core/components/parameter-row.jsx Co-authored-by: Helen Kosova <hkosova@users.noreply.github.com> Co-authored-by: kyle shockey <kyleshockey@gmail.com>
This commit is contained in:
@@ -212,7 +212,7 @@ export default class ParameterRow extends Component {
|
|||||||
let { schema } = getParameterSchema(param, { isOAS3 })
|
let { schema } = getParameterSchema(param, { isOAS3 })
|
||||||
let paramWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) || Map()
|
let paramWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) || Map()
|
||||||
|
|
||||||
let format = param.get("format")
|
let format = schema.get("format")
|
||||||
let type = schema.get("type")
|
let type = schema.get("type")
|
||||||
let isFormData = inType === "formData"
|
let isFormData = inType === "formData"
|
||||||
let isFormDataSupported = "FormData" in win
|
let isFormDataSupported = "FormData" in win
|
||||||
@@ -364,4 +364,3 @@ export default class ParameterRow extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
88
test/mocha/components/parameter-row.jsx
Normal file
88
test/mocha/components/parameter-row.jsx
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
/* eslint-env mocha */
|
||||||
|
import React from "react"
|
||||||
|
import { fromJS } from "immutable"
|
||||||
|
import expect from "expect"
|
||||||
|
import { render } from "enzyme"
|
||||||
|
import ParameterRow from "components/parameter-row"
|
||||||
|
|
||||||
|
describe("<ParameterRow/>", () => {
|
||||||
|
const createProps = ({ param, isOAS3 }) => ({
|
||||||
|
getComponent: () => "div",
|
||||||
|
specSelectors: {
|
||||||
|
parameterWithMetaByIdentity: () => param,
|
||||||
|
isOAS3: () => isOAS3,
|
||||||
|
isSwagger2: () => !isOAS3
|
||||||
|
},
|
||||||
|
oas3Selectors: { activeExamplesMember: () => {} },
|
||||||
|
param,
|
||||||
|
rawParam: param,
|
||||||
|
pathMethod: [],
|
||||||
|
getConfigs: () => ({})
|
||||||
|
})
|
||||||
|
|
||||||
|
it("Can render Swagger 2 parameter type with format", () => {
|
||||||
|
const param = fromJS({
|
||||||
|
name: "petUuid",
|
||||||
|
in: "path",
|
||||||
|
description: "UUID that identifies a pet",
|
||||||
|
type: "string",
|
||||||
|
format: "uuid"
|
||||||
|
})
|
||||||
|
|
||||||
|
const props = createProps({ param, isOAS3: false })
|
||||||
|
const wrapper = render(<ParameterRow {...props}/>)
|
||||||
|
|
||||||
|
expect(wrapper.find(".parameter__type").length).toEqual(1)
|
||||||
|
expect(wrapper.find(".parameter__type").text()).toEqual("string($uuid)")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("Can render Swagger 2 parameter type without format", () => {
|
||||||
|
const param = fromJS({
|
||||||
|
name: "petId",
|
||||||
|
in: "path",
|
||||||
|
description: "ID that identifies a pet",
|
||||||
|
type: "string"
|
||||||
|
})
|
||||||
|
|
||||||
|
const props = createProps({ param, isOAS3: false })
|
||||||
|
const wrapper = render(<ParameterRow {...props}/>)
|
||||||
|
|
||||||
|
expect(wrapper.find(".parameter__type").length).toEqual(1)
|
||||||
|
expect(wrapper.find(".parameter__type").text()).toEqual("string")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("Can render OAS3 parameter type with format", () => {
|
||||||
|
const param = fromJS({
|
||||||
|
name: "petUuid",
|
||||||
|
in: "path",
|
||||||
|
description: "UUID that identifies a pet",
|
||||||
|
schema: {
|
||||||
|
type: "string",
|
||||||
|
format: "uuid"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const props = createProps({ param, isOAS3: true })
|
||||||
|
const wrapper = render(<ParameterRow {...props}/>)
|
||||||
|
|
||||||
|
expect(wrapper.find(".parameter__type").length).toEqual(1)
|
||||||
|
expect(wrapper.find(".parameter__type").text()).toEqual("string($uuid)")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("Can render OAS3 parameter type without format", () => {
|
||||||
|
const param = fromJS({
|
||||||
|
name: "petId",
|
||||||
|
in: "path",
|
||||||
|
description: "ID that identifies a pet",
|
||||||
|
schema: {
|
||||||
|
type: "string"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const props = createProps({ param, isOAS3: true })
|
||||||
|
const wrapper = render(<ParameterRow {...props}/>)
|
||||||
|
|
||||||
|
expect(wrapper.find(".parameter__type").length).toEqual(1)
|
||||||
|
expect(wrapper.find(".parameter__type").text()).toEqual("string")
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user