Version 1
[yaffs-website] / node_modules / is-my-json-valid / test / fixtures / cosmic.js
diff --git a/node_modules/is-my-json-valid/test/fixtures/cosmic.js b/node_modules/is-my-json-valid/test/fixtures/cosmic.js
new file mode 100644 (file)
index 0000000..4e0a34b
--- /dev/null
@@ -0,0 +1,84 @@
+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" }},
+    }
+  }
\ No newline at end of file