bug: enum Select crashes when selecting the empty value (via #5463)
* add failing tests * fix property access * @babel/plugin-proposal-optional-chaining
This commit is contained in:
1
.babelrc
1
.babelrc
@@ -23,6 +23,7 @@
|
||||
"corejs": "2"
|
||||
}],
|
||||
"@babel/plugin-proposal-class-properties",
|
||||
"@babel/plugin-proposal-optional-chaining",
|
||||
["transform-react-remove-prop-types", {
|
||||
"additionalLibraries": ["react-immutable-proptypes"]
|
||||
}],
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.5.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/preset-env": "^7.0.0",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
|
||||
@@ -186,7 +186,7 @@ export class Select extends React.Component {
|
||||
|
||||
render(){
|
||||
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 (
|
||||
<select className={this.props.className} multiple={ multiple } value={value} onChange={ this.onChange } disabled={disabled} >
|
||||
|
||||
20
test/e2e-cypress/static/documents/bugs/5452/openapi.yaml
Normal file
20
test/e2e-cypress/static/documents/bugs/5452/openapi.yaml
Normal file
@@ -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
|
||||
19
test/e2e-cypress/static/documents/bugs/5452/swagger.yaml
Normal file
19
test/e2e-cypress/static/documents/bugs/5452/swagger.yaml
Normal file
@@ -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
|
||||
34
test/e2e-cypress/tests/bugs/5452.js
Normal file
34
test/e2e-cypress/tests/bugs/5452.js
Normal file
@@ -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")
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user