@deskpro/react-forms
Version:
Forms library for React
59 lines (56 loc) • 3.38 kB
JavaScript
"use strict";
exports.valid = {
fullName: "John Doe",
age: 47,
state: "Massachusetts",
city: "Boston",
zip: 16417,
married: false,
dozen: 12,
dozenOrBakersDozen: 13,
favoriteEvenNumber: 14,
topThreeFavoriteColors: ["red", "blue", "green"],
favoriteSingleDigitWholeNumbers: [7],
favoriteFiveLetterWord: "coder",
emailAddresses: ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@letters-in-local.org", "01234567890@numbers-in-local.net", "&'*+-./=?^_{}~@other-valid-characters-in-local.net", "mixed-1234-in-{+^}-local@sld.net", "a@single-character-in-local.org", "\"quoted\"@sld.com", "\"\\e\\s\\c\\a\\p\\e\\d\"@sld.com", "\"quoted-at-sign@sld.org\"@sld.com", "\"escaped\\\"quote\"@sld.com", "\"back\\slash\"@sld.com", "one-character-third-level@a.example.com", "single-character-in-sld@x.org", "local@dash-in-sld.com", "letters-in-sld@123.com", "one-letter-sld@x.org", "uncommon-tld@sld.museum", "uncommon-tld@sld.travel", "uncommon-tld@sld.mobi", "country-code-tld@sld.uk", "country-code-tld@sld.rw", "local@sld.newTLD", "the-total-length@of-an-entire-address.cannot-be-longer-than-two-hundred-and-fifty-four-characters.and-this-address-is-254-characters-exactly.so-it-should-be-valid.and-im-going-to-add-some-more-words-here.to-increase-the-lenght-blah-blah-blah-blah-bla.org", "the-character-limit@for-each-part.of-the-domain.is-sixty-three-characters.this-is-exactly-sixty-three-characters-so-it-is-valid-blah-blah.com", "local@sub.domains.com"],
ipAddresses: ["127.0.0.1", "24.48.64.2", "192.168.1.1", "209.68.44.3", "2.2.2.2"]
};
exports.invalid = {
fullName: null,
age: -1,
state: 47,
city: false,
zip: [null],
married: "yes",
dozen: 50,
dozenOrBakersDozen: "over 9000",
favoriteEvenNumber: 15,
topThreeFavoriteColors: ["red", 5],
favoriteSingleDigitWholeNumbers: [78, 2, 999],
favoriteFiveLetterWord: "codernaut",
emailAddresses: [],
ipAddresses: ["999.0.099.1", "294.48.64.2346", false, "2221409.64214128.42414.235233", "124124.12412412"]
};
exports.schema = { // from cosmic thingy
name: "test",
type: "object",
additionalProperties: false,
required: ["fullName", "age", "zip", "married", "dozen", "dozenOrBakersDozen", "favoriteEvenNumber", "topThreeFavoriteColors", "favoriteSingleDigitWholeNumbers", "favoriteFiveLetterWord", "emailAddresses", "ipAddresses"],
properties: {
fullName: { type: "string" },
age: { type: "integer", minimum: 0 },
optionalItem: { type: "string" },
state: { type: "string" },
city: { type: "string" },
zip: { type: "integer", minimum: 0, maximum: 99999 },
married: { type: "boolean" },
dozen: { type: "integer", minimum: 12, maximum: 12 },
dozenOrBakersDozen: { type: "integer", minimum: 12, maximum: 13 },
favoriteEvenNumber: { type: "integer", multipleOf: 2 },
topThreeFavoriteColors: { type: "array", minItems: 3, maxItems: 3, uniqueItems: true, items: { type: "string" } },
favoriteSingleDigitWholeNumbers: { type: "array", minItems: 1, maxItems: 10, uniqueItems: true, items: { type: "integer", minimum: 0, maximum: 9 } },
favoriteFiveLetterWord: { type: "string", minLength: 5, maxLength: 5 },
emailAddresses: { type: "array", minItems: 1, uniqueItems: true, items: { type: "string", format: "email" } },
ipAddresses: { type: "array", uniqueItems: true, items: { type: "string", format: "ipv4" } }
}
};