diff --git a/src/core/plugins/samples/fn.js b/src/core/plugins/samples/fn.js index cdfc927c..994a2a3b 100644 --- a/src/core/plugins/samples/fn.js +++ b/src/core/plugins/samples/fn.js @@ -214,6 +214,9 @@ export const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = und // generate xml sample recursively for array case if(type === "array") { if (!Array.isArray(sample)) { + if(typeof sample === "string") { + return sample + } sample = [sample] } const itemSchema = schema @@ -239,6 +242,10 @@ export const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = und // generate xml sample recursively for object case if(type === "object") { + // case literal example + if(typeof sample === "string") { + return sample + } for (let propName in sample) { if (!sample.hasOwnProperty(propName)) { continue @@ -382,7 +389,9 @@ export const inferSchema = (thing) => { export const createXMLExample = (schema, config, o) => { const json = sampleFromSchemaGeneric(schema, config, o, true) if (!json) { return } - + if(typeof json === "string") { + return json + } return XML(json, { declaration: true, indent: "\t" }) } diff --git a/test/unit/core/plugins/samples/fn.js b/test/unit/core/plugins/samples/fn.js index c2b327e0..90c1de22 100644 --- a/test/unit/core/plugins/samples/fn.js +++ b/test/unit/core/plugins/samples/fn.js @@ -1115,6 +1115,27 @@ describe("createXMLExample", function () { expect(sut(definition, {}, [{ notalien: "test" }])).toEqual(expected) }) + it("should return literal example", () => { + let expected = "\n\t\n\t0\n" + let definition = { + type: "array", + items: { + properties: { + alien: { + type: "string" + }, + dog: { + type: "integer" + } + } + }, + xml: { + name: "aliens" + } + } + + expect(sut(definition, {}, expected)).toEqual(expected) + }) }) describe("object", function () { @@ -1562,6 +1583,25 @@ describe("createXMLExample", function () { expect(sut(definition, {}, { alien: "test", dog: 1 })).toEqual(expected) }) + it("should return literal example", () => { + let expected = "\n\t\n\t0\n" + let definition = { + type: "object", + properties: { + alien: { + type: "string" + }, + dog: { + type: "integer" + } + }, + xml: { + name: "aliens" + } + } + + expect(sut(definition, {}, expected)).toEqual(expected) + }) }) })