fix(examples): allow string created by regex pattern (#7829)
Co-authored-by: Tim Lai <timothy.lai@gmail.com>
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user