Skip to content

Commit

Permalink
fix(xml): example generation if an array has an example
Browse files Browse the repository at this point in the history
  • Loading branch information
tim-lai committed Nov 18, 2020
1 parent d7c9740 commit 79700a7
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/core/plugins/samples/fn.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,10 @@ export const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = und
if (schema && props[propName] && props[propName].writeOnly && !includeWriteOnly) {
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) {
_attr[props[propName].xml.name || propName] = example[propName]
continue
Expand Down
41 changes: 41 additions & 0 deletions test/e2e-cypress/static/documents/bugs/6627.yaml
Original file line number Diff line number Diff line change
@@ -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 changes: 11 additions & 0 deletions test/e2e-cypress/tests/bugs/6627.js
Original file line number Diff line number Diff line change
@@ -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)
})
})

0 comments on commit 79700a7

Please sign in to comment.