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 PropTypes from "prop-types"
|
||||
import { List } from "immutable"
|
||||
|
||||
const Webhooks = ({ specSelectors, getComponent }) => {
|
||||
const operationDTOs = specSelectors.selectWebhooksOperations()
|
||||
@@ -25,7 +26,7 @@ const Webhooks = ({ specSelectors, getComponent }) => {
|
||||
tag="webhooks"
|
||||
method={operationDTO.method}
|
||||
path={pathItemName}
|
||||
specPath={operationDTO.specPath}
|
||||
specPath={List(operationDTO.specPath)}
|
||||
allowTryItOut={false}
|
||||
/>
|
||||
))}
|
||||
|
||||
@@ -42,7 +42,7 @@ export const selectWebhooksOperations = createSelector(
|
||||
operation: Map({ operation }),
|
||||
method,
|
||||
path: pathItemName,
|
||||
specPath: List(["webhooks", pathItemName, method]),
|
||||
specPath: ["webhooks", pathItemName, method],
|
||||
}))
|
||||
|
||||
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