|
| 1 | +"use strict"; |
| 2 | + |
| 3 | +const Validator = require("../../lib/validator"); |
| 4 | +const fn = require("../../lib/rules/uuid"); |
| 5 | + |
| 6 | +const v = new Validator(); |
| 7 | +const check = fn.bind(v); |
| 8 | + |
| 9 | +describe("Test checkUUID", () => { |
| 10 | + |
| 11 | + it("should check type of value", () => { |
| 12 | + const uuid = {type: "uuid"}; |
| 13 | + const err = {type: "uuid"}; |
| 14 | + const errString = {type: "string"}; |
| 15 | + |
| 16 | + expect(check(null, uuid)).toEqual(errString); |
| 17 | + expect(check(undefined, uuid)).toEqual(errString); |
| 18 | + expect(check(0, uuid)).toEqual(errString); |
| 19 | + expect(check(1, uuid)).toEqual(errString); |
| 20 | + expect(check("", uuid)).toEqual(err); |
| 21 | + expect(check("true", uuid)).toEqual(err); |
| 22 | + expect(check([], uuid)).toEqual(errString); |
| 23 | + expect(check({}, uuid)).toEqual(errString); |
| 24 | + expect(check(false, uuid)).toEqual(errString); |
| 25 | + expect(check(true, uuid)).toEqual(errString); |
| 26 | + expect(check("00000000-0000-0000-0000-000000000000", uuid)).toEqual(err); |
| 27 | + expect(check("1234567-1234-1234-1234-1234567890ab", uuid)).toEqual(err); |
| 28 | + expect(check("12345678-1234-1234-1234-1234567890ab", uuid)).toEqual(true); |
| 29 | + }); |
| 30 | + |
| 31 | + it("check invalid version", () => { |
| 32 | + const err = {type: "uuid"}; |
| 33 | + const v1 = {type: "uuid", version: 1}; |
| 34 | + const v2 = {type: "uuid", version: 2}; |
| 35 | + const v3 = {type: "uuid", version: 3}; |
| 36 | + const v4 = {type: "uuid", version: 4}; |
| 37 | + const v5 = {type: "uuid", version: 5}; |
| 38 | + |
| 39 | + expect(check("00000000-0000-7000-0000-000000000000", err)).toEqual(err); |
| 40 | + expect(check("fdda765f-fc57-5604-c269-52a7df8164ec", v5)).toEqual(err); |
| 41 | + expect(check("9a7b330a-a736-51e5-af7f-feaf819cdc9f", v1)).toEqual({"actual": 5, "expected": 1, "type": "uuidVersion"}); |
| 42 | + expect(check("9a7b330a-a736-51e5-af7f-feaf819cdc9f", v1)).toEqual({"actual": 5, "expected": 1, "type": "uuidVersion"}); |
| 43 | + expect(check("9a7b330a-a736-41e5-af7f-feaf819cdc9f", v2)).toEqual({"actual": 4, "expected": 2, "type": "uuidVersion"}); |
| 44 | + expect(check("9a7b330a-a736-41e5-af7f-feaf819cdc9f", v3)).toEqual({"actual": 4, "expected": 3, "type": "uuidVersion"}); |
| 45 | + expect(check("9a7b330a-a736-21e5-af7f-feaf819cdc9f", v4)).toEqual({"actual": 2, "expected": 4, "type": "uuidVersion"}); |
| 46 | + expect(check("9a7b330a-a736-11e5-af7f-feaf819cdc9f", v5)).toEqual({"actual": 1, "expected": 5, "type": "uuidVersion"}); |
| 47 | + }); |
| 48 | + |
| 49 | + it("check valid version", () => { |
| 50 | + const v1 = {type: "uuid", version: 1}; |
| 51 | + const v2 = {type: "uuid", version: 2}; |
| 52 | + const v3 = {type: "uuid", version: 3}; |
| 53 | + const v4 = {type: "uuid", version: 4}; |
| 54 | + const v5 = {type: "uuid", version: 5}; |
| 55 | + |
| 56 | + expect(check("45745c60-7b1a-11e8-9c9c-2d42b21b1a3e", v1)).toEqual(true); |
| 57 | + expect(check("9a7b330a-a736-21e5-af7f-feaf819cdc9f", v2)).toEqual(true); |
| 58 | + expect(check("9125a8dc-52ee-365b-a5aa-81b0b3681cf6", v3)).toEqual(true); |
| 59 | + expect(check("10ba038e-48da-487b-96e8-8d3b99b6d18a", v4)).toEqual(true); |
| 60 | + expect(check("fdda765f-fc57-5604-a269-52a7df8164ec", v5)).toEqual(true); |
| 61 | + |
| 62 | + }); |
| 63 | +}); |
0 commit comments