* add failing tests * fix property access * @babel/plugin-proposal-optional-chainingbubble
@@ -23,6 +23,7 @@ | |||||
"corejs": "2" | "corejs": "2" | ||||
}], | }], | ||||
"@babel/plugin-proposal-class-properties", | "@babel/plugin-proposal-class-properties", | ||||
"@babel/plugin-proposal-optional-chaining", | |||||
["transform-react-remove-prop-types", { | ["transform-react-remove-prop-types", { | ||||
"additionalLibraries": ["react-immutable-proptypes"] | "additionalLibraries": ["react-immutable-proptypes"] | ||||
}], | }], | ||||
@@ -84,7 +84,7 @@ | |||||
"@babel/core": "^7.0.0", | "@babel/core": "^7.0.0", | ||||
"@babel/plugin-proposal-class-properties": "^7.5.0", | "@babel/plugin-proposal-class-properties": "^7.5.0", | ||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", | "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", | ||||
"@babel/plugin-proposal-optional-chaining": "^7.0.0", | |||||
"@babel/plugin-proposal-optional-chaining": "^7.2.0", | |||||
"@babel/plugin-transform-runtime": "^7.0.0", | "@babel/plugin-transform-runtime": "^7.0.0", | ||||
"@babel/preset-env": "^7.0.0", | "@babel/preset-env": "^7.0.0", | ||||
"@babel/preset-react": "^7.0.0", | "@babel/preset-react": "^7.0.0", | ||||
@@ -186,7 +186,7 @@ export class Select extends React.Component { | |||||
render(){ | render(){ | ||||
let { allowedValues, multiple, allowEmptyValue, disabled } = this.props | let { allowedValues, multiple, allowEmptyValue, disabled } = this.props | ||||
let value = this.state.value.toJS ? this.state.value.toJS() : this.state.value | |||||
let value = this.state.value?.toJS?.() || this.state.value | |||||
return ( | return ( | ||||
<select className={this.props.className} multiple={ multiple } value={value} onChange={ this.onChange } disabled={disabled} > | <select className={this.props.className} multiple={ multiple } value={value} onChange={ this.onChange } disabled={disabled} > | ||||
@@ -0,0 +1,20 @@ | |||||
openapi: "3.0.0" | |||||
info: | |||||
title: Testcase API | |||||
version: 2.0.0 | |||||
paths: | |||||
'/endpoint': | |||||
get: | |||||
parameters: | |||||
- name: type | |||||
in: query | |||||
example: fruit | |||||
schema: | |||||
type: string | |||||
enum: | |||||
- fruit | |||||
- vegetable | |||||
- drink | |||||
responses: | |||||
'200': | |||||
description: 200 response |
@@ -0,0 +1,19 @@ | |||||
swagger: "2.0" | |||||
info: | |||||
title: Testcase API | |||||
version: 2.0.0 | |||||
paths: | |||||
'/endpoint': | |||||
get: | |||||
parameters: | |||||
- name: type | |||||
in: query | |||||
x-example: fruit | |||||
type: string | |||||
enum: | |||||
- fruit | |||||
- vegetable | |||||
- drink | |||||
responses: | |||||
'200': | |||||
description: 200 response |
@@ -0,0 +1,34 @@ | |||||
/** | |||||
* @prettier | |||||
*/ | |||||
describe("#5452: <Select /> crashing in Parameters", function() { | |||||
describe("in OpenAPI 3", () => { | |||||
it("should not result in a render error", function() { | |||||
cy.visit("http://localhost:3230/?url=/documents/bugs/5452/openapi.yaml") | |||||
.get("#operations-default-get_endpoint") | |||||
.click() | |||||
.get(".parameters > tbody > tr > .col > select") | |||||
.select("") | |||||
.get(".parameters > tbody > tr > .col > select") | |||||
.should("exist") | |||||
.select("fruit") | |||||
.get(".parameters > tbody > tr > .col > select") | |||||
.should("exist") | |||||
}) | |||||
}) | |||||
describe("in Swagger 2", () => { | |||||
it("should not result in a render error", function() { | |||||
cy.visit("http://localhost:3230/?url=/documents/bugs/5452/swagger.yaml") | |||||
.get("#operations-default-get_endpoint") | |||||
.click() | |||||
.get(".parameters > tbody > tr > .col > select") | |||||
.select("") | |||||
.get(".parameters > tbody > tr > .col > select") | |||||
.should("exist") | |||||
.select("fruit") | |||||
.get(".parameters > tbody > tr > .col > select") | |||||
.should("exist") | |||||
}) | |||||
}) | |||||
}) |