Преглед изворни кода

bug: enum Select crashes when selecting the empty value (via #5463)

* add failing tests

* fix property access

* @babel/plugin-proposal-optional-chaining
bubble
kyle пре 5 година
committed by GitHub
родитељ
комит
eaa1f4a8b4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 измењених фајлова са 76 додато и 2 уклоњено
  1. +1
    -0
      .babelrc
  2. +1
    -1
      package.json
  3. +1
    -1
      src/core/components/layout-utils.jsx
  4. +20
    -0
      test/e2e-cypress/static/documents/bugs/5452/openapi.yaml
  5. +19
    -0
      test/e2e-cypress/static/documents/bugs/5452/swagger.yaml
  6. +34
    -0
      test/e2e-cypress/tests/bugs/5452.js

+ 1
- 0
.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"]
}],


+ 1
- 1
package.json Прегледај датотеку

@@ -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",


+ 1
- 1
src/core/components/layout-utils.jsx Прегледај датотеку

@@ -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
- 0
test/e2e-cypress/static/documents/bugs/5452/openapi.yaml Прегледај датотеку

@@ -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
- 0
test/e2e-cypress/static/documents/bugs/5452/swagger.yaml Прегледај датотеку

@@ -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
- 0
test/e2e-cypress/tests/bugs/5452.js Прегледај датотеку

@@ -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")
})
})
})

Loading…
Откажи
Сачувај