fix(OAS3): servers component update on definition change (#6280)
* fix(OAS3): servers component should use nextProps * test(OAS3): cypress tests for selecting multiple servers * test(OAS3): multiple server test with definition change
This commit is contained in:
@@ -30,9 +30,9 @@ export default class Servers extends React.Component {
|
|||||||
servers,
|
servers,
|
||||||
setServerVariableValue,
|
setServerVariableValue,
|
||||||
getServerVariable
|
getServerVariable
|
||||||
} = this.props
|
} = nextProps
|
||||||
|
|
||||||
if(this.props.currentServer !== nextProps.currentServer) {
|
if (this.props.currentServer !== nextProps.currentServer || this.props.servers !== nextProps.servers) {
|
||||||
// Server has changed, we may need to set default values
|
// Server has changed, we may need to set default values
|
||||||
let currentServerDefinition = servers
|
let currentServerDefinition = servers
|
||||||
.find(v => v.get("url") === nextProps.currentServer)
|
.find(v => v.get("url") === nextProps.currentServer)
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
openapi: 3.0.2
|
||||||
|
servers:
|
||||||
|
- url: /test-url-switch-1
|
||||||
|
- url: /test-url-switch-2
|
||||||
|
info:
|
||||||
|
title: multi-server test, switch
|
||||||
|
version: 0.0.1
|
||||||
|
description: |-
|
||||||
|
a simple test to select different servers
|
||||||
|
paths:
|
||||||
|
/:
|
||||||
|
get:
|
||||||
|
summary: an operation
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
openapi: 3.0.2
|
||||||
|
servers:
|
||||||
|
- url: /test-url-1
|
||||||
|
- url: /test-url-2
|
||||||
|
info:
|
||||||
|
title: multi-server test
|
||||||
|
version: 0.0.1
|
||||||
|
description: |-
|
||||||
|
a simple test to select different servers
|
||||||
|
paths:
|
||||||
|
/:
|
||||||
|
get:
|
||||||
|
summary: an operation
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
82
test/e2e-cypress/tests/features/oas3-multiple-servers.js
Normal file
82
test/e2e-cypress/tests/features/oas3-multiple-servers.js
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
/**
|
||||||
|
* @prettier
|
||||||
|
*/
|
||||||
|
|
||||||
|
describe("OpenAPI 3.0 Multiple Servers", () => {
|
||||||
|
it("should render and execute for server '/test-url-1'", () => {
|
||||||
|
cy.visit(
|
||||||
|
"/?url=/documents/features/oas3-multiple-servers.yaml"
|
||||||
|
)
|
||||||
|
.get(".scheme-container .schemes .servers label > select")
|
||||||
|
.select("/test-url-1")
|
||||||
|
.get("#operations-default-get_")
|
||||||
|
.click()
|
||||||
|
// Expand Try It Out
|
||||||
|
.get(".try-out__btn")
|
||||||
|
.click()
|
||||||
|
// Execute
|
||||||
|
.get(".execute.opblock-control__btn")
|
||||||
|
.click()
|
||||||
|
.get(".responses-wrapper .request-url")
|
||||||
|
.should("contains.text", "/test-url-1")
|
||||||
|
})
|
||||||
|
it("should render and execute for server '/test-url-2'", () => {
|
||||||
|
cy.visit(
|
||||||
|
"/?url=/documents/features/oas3-multiple-servers.yaml"
|
||||||
|
)
|
||||||
|
.get(".scheme-container .schemes .servers label > select")
|
||||||
|
.select("/test-url-2")
|
||||||
|
.get("#operations-default-get_")
|
||||||
|
.click()
|
||||||
|
// Expand Try It Out
|
||||||
|
.get(".try-out__btn")
|
||||||
|
.click()
|
||||||
|
// Execute
|
||||||
|
.get(".execute.opblock-control__btn")
|
||||||
|
.click()
|
||||||
|
.get(".responses-wrapper .request-url")
|
||||||
|
.should("contains.text", "/test-url-2")
|
||||||
|
})
|
||||||
|
it("should render and execute for server '/test-url-1' after sequence: select '/test-url-2' -> Try-It-Out -> select '/test-url-1'", () => {
|
||||||
|
cy.visit(
|
||||||
|
"/?url=/documents/features/oas3-multiple-servers.yaml"
|
||||||
|
)
|
||||||
|
.get(".scheme-container .schemes .servers label > select")
|
||||||
|
.select("/test-url-2")
|
||||||
|
.get("#operations-default-get_")
|
||||||
|
.click()
|
||||||
|
// Expand Try It Out
|
||||||
|
.get(".try-out__btn")
|
||||||
|
.click()
|
||||||
|
// Select a different server
|
||||||
|
.get(".scheme-container .schemes .servers label > select")
|
||||||
|
.select("/test-url-1")
|
||||||
|
// Execute
|
||||||
|
.get(".execute.opblock-control__btn")
|
||||||
|
.click()
|
||||||
|
.get(".responses-wrapper .request-url")
|
||||||
|
.should("contains.text", "/test-url-1")
|
||||||
|
})
|
||||||
|
it("should render and execute for server '/test-url-switch-1' after changing api defintion", () => {
|
||||||
|
cy.visit(
|
||||||
|
"/?url=/documents/features/oas3-multiple-servers.yaml"
|
||||||
|
)
|
||||||
|
.get(".scheme-container .schemes .servers label > select")
|
||||||
|
.select("/test-url-2")
|
||||||
|
cy.visit(
|
||||||
|
"/?url=/documents/features/oas3-multiple-servers-switch.yaml"
|
||||||
|
)
|
||||||
|
.get(".scheme-container .schemes .servers label > select")
|
||||||
|
.select("/test-url-switch-2")
|
||||||
|
.get("#operations-default-get_")
|
||||||
|
.click()
|
||||||
|
// Expand Try It Out
|
||||||
|
.get(".try-out__btn")
|
||||||
|
.click()
|
||||||
|
// Execute
|
||||||
|
.get(".execute.opblock-control__btn")
|
||||||
|
.click()
|
||||||
|
.get(".responses-wrapper .request-url")
|
||||||
|
.should("contains.text", "/test-url-switch-2")
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user