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",
|
"js-yaml": "=4.1.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"prop-types": "^15.8.1",
|
"prop-types": "^15.8.1",
|
||||||
|
"randexp": "^0.5.3",
|
||||||
"randombytes": "^2.1.0",
|
"randombytes": "^2.1.0",
|
||||||
"react": "=17.0.2",
|
"react": "=17.0.2",
|
||||||
"react-copy-to-clipboard": "5.0.4",
|
"react-copy-to-clipboard": "5.0.4",
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
import XML from "xml"
|
import XML from "xml"
|
||||||
|
import RandExp from "randexp"
|
||||||
import isEmpty from "lodash/isEmpty"
|
import isEmpty from "lodash/isEmpty"
|
||||||
import { objectify, isFunc, normalizeArray, deeplyStripKey } from "core/utils"
|
import { objectify, isFunc, normalizeArray, deeplyStripKey } from "core/utils"
|
||||||
|
|
||||||
import memoizeN from "../../../helpers/memoizeN"
|
import memoizeN from "../../../helpers/memoizeN"
|
||||||
|
|
||||||
|
const generateStringFromRegex = (pattern) => {
|
||||||
|
const randexp = new RandExp(pattern)
|
||||||
|
return randexp.gen()
|
||||||
|
}
|
||||||
|
|
||||||
const primitives = {
|
const primitives = {
|
||||||
"string": () => "string",
|
"string": (schema) => schema.pattern ? generateStringFromRegex(schema.pattern) : "string",
|
||||||
"string_email": () => "user@example.com",
|
"string_email": () => "user@example.com",
|
||||||
"string_date-time": () => new Date().toISOString(),
|
"string_date-time": () => new Date().toISOString(),
|
||||||
"string_date": () => new Date().toISOString().substring(0, 10),
|
"string_date": () => new Date().toISOString().substring(0, 10),
|
||||||
|
|||||||
@@ -153,6 +153,23 @@ describe("sampleFromSchema", () => {
|
|||||||
expect(sampleFromSchema(definition, { includeReadOnly: true })).toEqual(expected)
|
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 () {
|
it("returns object without deprecated fields for parameter", function () {
|
||||||
let definition = {
|
let definition = {
|
||||||
type: "object",
|
type: "object",
|
||||||
|
|||||||
Reference in New Issue
Block a user