fix(examples): allow string created by regex pattern (#7829)

Co-authored-by: Tim Lai <timothy.lai@gmail.com>
This commit is contained in:
dewijones92
2022-03-04 00:31:00 +00:00
committed by GitHub
parent 7d4086bddf
commit 3d79c24949
3 changed files with 25 additions and 1 deletions

View File

@@ -74,6 +74,7 @@
"js-yaml": "=4.1.0",
"lodash": "^4.17.21",
"prop-types": "^15.8.1",
"randexp": "^0.5.3",
"randombytes": "^2.1.0",
"react": "=17.0.2",
"react-copy-to-clipboard": "5.0.4",

View File

@@ -1,11 +1,17 @@
import XML from "xml"
import RandExp from "randexp"
import isEmpty from "lodash/isEmpty"
import { objectify, isFunc, normalizeArray, deeplyStripKey } from "core/utils"
import memoizeN from "../../../helpers/memoizeN"
const generateStringFromRegex = (pattern) => {
const randexp = new RandExp(pattern)
return randexp.gen()
}
const primitives = {
"string": () => "string",
"string": (schema) => schema.pattern ? generateStringFromRegex(schema.pattern) : "string",
"string_email": () => "user@example.com",
"string_date-time": () => new Date().toISOString(),
"string_date": () => new Date().toISOString().substring(0, 10),

View File

@@ -153,6 +153,23 @@ describe("sampleFromSchema", () => {
expect(sampleFromSchema(definition, { includeReadOnly: true })).toEqual(expected)
})
it("regex pattern test", function () {
let definition = {
type: "object",
properties: {
macAddress: {
type: "string",
pattern: "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$"
}
}
}
const resp = sampleFromSchema(definition)
expect(new RegExp("^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$", "g").test(resp.macAddress)).toBe(true)
})
it("returns object without deprecated fields for parameter", function () {
let definition = {
type: "object",