diff --git a/src/core/utils.js b/src/core/utils.js index 793a29ec..9e4ddf9e 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -628,7 +628,9 @@ export const getSampleSchema = (schema, contentType="", config={}) => { return memoizedCreateXMLExample(schema, config) } - return JSON.stringify(memoizedSampleFromSchema(schema, config), null, 2) + const res = memoizedSampleFromSchema(schema, config) + + return typeof res === "object" ? JSON.stringify(res, null, 2) : res } export const parseSearch = () => { diff --git a/test/core/utils.js b/test/core/utils.js index b180b09a..8383c0fe 100644 --- a/test/core/utils.js +++ b/test/core/utils.js @@ -24,7 +24,8 @@ import { getCommonExtensions, sanitizeUrl, extractFileNameFromContentDispositionHeader, - deeplyStripKey + deeplyStripKey, + getSampleSchema } from "core/utils" import win from "core/window" @@ -1186,5 +1187,30 @@ describe("utils", function() { expect(sanitizeUrl({})).toEqual("") }) }) + describe("getSampleSchema", function() { + const oriDate = Date + before(function() { + Date = function () { + this.toISOString = function () { + return "2018-07-07T07:07:05.189Z" + } + } + }) + + after(function() { + Date = oriDate + }) + + it("should not unnecessarily stringify non-object values", function() { + // Given + const res = getSampleSchema({ + type: "string", + format: "date-time" + }) + + // Then + expect(res).toEqual(new Date().toISOString()) + }) + }) })