fix(xml): example generation if an array has an example (#6634)
ref: #6627
This commit is contained in:
@@ -202,6 +202,10 @@ export const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = und
|
|||||||
if (schema && props[propName] && props[propName].writeOnly && !includeWriteOnly) {
|
if (schema && props[propName] && props[propName].writeOnly && !includeWriteOnly) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if (schema && props[propName] && props[propName].xml && props[propName].xml.attribute && !(example && example[propName])) {
|
||||||
|
_attr[props[propName].xml.name || propName] = sample[propName]
|
||||||
|
continue
|
||||||
|
}
|
||||||
if (schema && props[propName] && props[propName].xml && props[propName].xml.attribute) {
|
if (schema && props[propName] && props[propName].xml && props[propName].xml.attribute) {
|
||||||
_attr[props[propName].xml.name || propName] = example[propName]
|
_attr[props[propName].xml.name || propName] = example[propName]
|
||||||
continue
|
continue
|
||||||
|
|||||||
41
test/e2e-cypress/static/documents/bugs/6627.yaml
Normal file
41
test/e2e-cypress/static/documents/bugs/6627.yaml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
openapi: 3.0.1
|
||||||
|
info:
|
||||||
|
title: XML array schema with array-level example
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
paths:
|
||||||
|
/users:
|
||||||
|
get:
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ''
|
||||||
|
content:
|
||||||
|
application/xml:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Users'
|
||||||
|
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
Users:
|
||||||
|
type: array
|
||||||
|
example:
|
||||||
|
- id: 123
|
||||||
|
name: bob
|
||||||
|
- id: 456
|
||||||
|
name: jane
|
||||||
|
xml:
|
||||||
|
name: Users
|
||||||
|
wrapped: true
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
xml:
|
||||||
|
name: User
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
xml:
|
||||||
|
attribute: true
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
xml:
|
||||||
|
attribute: true
|
||||||
11
test/e2e-cypress/tests/bugs/6627.js
Normal file
11
test/e2e-cypress/tests/bugs/6627.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
describe("#6627: XML example when defined as array", () => {
|
||||||
|
it("should render xml like json", () => {
|
||||||
|
const expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Users>\n\t<User id=\"123\" name=\"bob\">\n\t</User>\n\t<User id=\"456\" name=\"jane\">\n\t</User>\n</Users>"
|
||||||
|
cy
|
||||||
|
.visit("/?url=/documents/bugs/6627.yaml")
|
||||||
|
.get("#operations-default-get_users")
|
||||||
|
.click()
|
||||||
|
.get(".microlight")
|
||||||
|
.contains(expected)
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user