Skip to content

Commit

Permalink
fix(requestBody): hide read only properties (#6490)
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucia Sarni committed Oct 15, 2020
1 parent 5fc43fa commit 5065613
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/core/plugins/oas3/components/request-body.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ const RequestBody = ({
<tbody>
{
Map.isMap(bodyProperties) && bodyProperties.entrySeq().map(([key, prop]) => {
if (prop.get("readOnly")) return

let commonExt = showCommonExtensions ? getCommonExtensions(prop) : null
const required = schemaForMediaType.get("required", List()).includes(key)
const type = prop.get("type")
Expand Down
57 changes: 57 additions & 0 deletions test/e2e-cypress/static/documents/bugs/6158.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
openapi: 3.0.0
info:
title: "Swagger Test"
version: "1.0.0"
servers:
- url: https://api.example.com/v1
paths:
/users:
get:
tags:
- User
summary: Get Users
responses:
200:
description: User List
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
post:
tags:
- User
summary: Create a user
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
responses:
201:
description: Created successfully
put:
tags:
- User
summary: Update user
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
responses:
201:
description: Created successfully
components:
schemas:
User:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
required:
- name
54 changes: 54 additions & 0 deletions test/e2e-cypress/tests/bugs/6158.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
describe("#6158: read-only property is not hidden in `POST/PUT`", () => {
describe("POST", () => {
it("should hide property 'id'", () => {
cy.visit("/?url=/documents/bugs/6158.yaml")
.get("#operations-User-post_users")
.click()
.get(".parameters[data-property-name='id']")
.should("not.exist")
.get(".parameters[data-property-name='name']")
.should("exist")
})
it("should hide property 'id' when trying it out", () => {
cy.visit("/?url=/documents/bugs/6158.yaml")
.get("#operations-User-post_users")
.click()
.get(".try-out__btn")
.click()
.get(".parameters[data-property-name='id']")
.should("not.exist")
.get("input[placeholder='id']")
.should("not.exist")
.get(".parameters[data-property-name='name']")
.should("exist")
.get("input[placeholder='name']")
.should("exist")
})
})
describe("PUT", () => {
it("should hide property 'id'", () => {
cy.visit("/?url=/documents/bugs/6158.yaml")
.get("#operations-User-put_users")
.click()
.get(".parameters[data-property-name='id']")
.should("not.exist")
.get(".parameters[data-property-name='name']")
.should("exist")
})
it("should hide property 'id' when trying it out", () => {
cy.visit("/?url=/documents/bugs/6158.yaml")
.get("#operations-User-put_users")
.click()
.get(".try-out__btn")
.click()
.get(".parameters[data-property-name='id']")
.should("not.exist")
.get("input[placeholder='id']")
.should("not.exist")
.get(".parameters[data-property-name='name']")
.should("exist")
.get("input[placeholder='name']")
.should("exist")
})
})
})

0 comments on commit 5065613

Please sign in to comment.