fix(oas31): fix re-rendering of the Webhooks component (#9938)
Refs #9937
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
import React from "react"
|
import React from "react"
|
||||||
import PropTypes from "prop-types"
|
import PropTypes from "prop-types"
|
||||||
|
import { List } from "immutable"
|
||||||
|
|
||||||
const Webhooks = ({ specSelectors, getComponent }) => {
|
const Webhooks = ({ specSelectors, getComponent }) => {
|
||||||
const operationDTOs = specSelectors.selectWebhooksOperations()
|
const operationDTOs = specSelectors.selectWebhooksOperations()
|
||||||
@@ -25,7 +26,7 @@ const Webhooks = ({ specSelectors, getComponent }) => {
|
|||||||
tag="webhooks"
|
tag="webhooks"
|
||||||
method={operationDTO.method}
|
method={operationDTO.method}
|
||||||
path={pathItemName}
|
path={pathItemName}
|
||||||
specPath={operationDTO.specPath}
|
specPath={List(operationDTO.specPath)}
|
||||||
allowTryItOut={false}
|
allowTryItOut={false}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export const selectWebhooksOperations = createSelector(
|
|||||||
operation: Map({ operation }),
|
operation: Map({ operation }),
|
||||||
method,
|
method,
|
||||||
path: pathItemName,
|
path: pathItemName,
|
||||||
specPath: List(["webhooks", pathItemName, method]),
|
specPath: ["webhooks", pathItemName, method],
|
||||||
}))
|
}))
|
||||||
|
|
||||||
return allOperations.concat(pathItemOperations)
|
return allOperations.concat(pathItemOperations)
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* @prettier
|
||||||
|
*/
|
||||||
|
|
||||||
|
describe("OpenAPI 3.1.0 webhook", () => {
|
||||||
|
it("should render the correct example for the request body", () => {
|
||||||
|
cy.visit("/?url=/documents/features/oas31-webhook-examples.yaml")
|
||||||
|
.get("#operations-webhooks-test-webhook")
|
||||||
|
.click()
|
||||||
|
.get(".body-param__example")
|
||||||
|
.should("contain", '"userId": "userId example from examples"')
|
||||||
|
.and("contain", '"orderId": "orderId example from examples"')
|
||||||
|
.get(".examples-select-element")
|
||||||
|
.eq(0)
|
||||||
|
.select("TestExample2")
|
||||||
|
.get(".body-param__example")
|
||||||
|
.should("contain", '"userId": "second userId example from examples"')
|
||||||
|
.and("contain", '"orderId": "second orderId example from examples"')
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should render the correct example for the response", () => {
|
||||||
|
cy.visit("/?url=/documents/features/oas31-webhook-examples.yaml")
|
||||||
|
.get("#operations-webhooks-test-webhook")
|
||||||
|
.click()
|
||||||
|
.get(".example.microlight")
|
||||||
|
.should("contain", '"userId": "userId example from examples"')
|
||||||
|
.and("contain", '"orderId": "orderId example from examples"')
|
||||||
|
.get(".examples-select-element")
|
||||||
|
.eq(1)
|
||||||
|
.select("TestExample2")
|
||||||
|
.get(".example.microlight")
|
||||||
|
.should("contain", '"userId": "second userId example from examples"')
|
||||||
|
.and("contain", '"orderId": "second orderId example from examples"')
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
openapi: 3.1.0
|
||||||
|
info:
|
||||||
|
version: 1.0.0
|
||||||
|
title: Examples
|
||||||
|
description: ''
|
||||||
|
webhooks:
|
||||||
|
test-webhook:
|
||||||
|
post:
|
||||||
|
operationId: test-webhook
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TestSchema'
|
||||||
|
examples:
|
||||||
|
TestExample1:
|
||||||
|
$ref: '#/components/examples/TestExample1'
|
||||||
|
TestExample2:
|
||||||
|
$ref: '#/components/examples/TestExample2'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TestSchema'
|
||||||
|
examples:
|
||||||
|
TestExample1:
|
||||||
|
$ref: '#/components/examples/TestExample1'
|
||||||
|
TestExample2:
|
||||||
|
$ref: '#/components/examples/TestExample2'
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
TestSchema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
userId:
|
||||||
|
type: string
|
||||||
|
examples: ['userId example from schema']
|
||||||
|
orders:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
orderId:
|
||||||
|
type: string
|
||||||
|
examples: ['orderId example from schema']
|
||||||
|
examples:
|
||||||
|
TestExample1:
|
||||||
|
value:
|
||||||
|
userId: 'userId example from examples'
|
||||||
|
orders:
|
||||||
|
- orderId: 'orderId example from examples'
|
||||||
|
TestExample2:
|
||||||
|
value:
|
||||||
|
userId: 'second userId example from examples'
|
||||||
|
orders:
|
||||||
|
- orderId: 'second orderId example from examples'
|
||||||
Reference in New Issue
Block a user