diff options
Diffstat (limited to 'std/uuid/v5_test.ts')
-rw-r--r-- | std/uuid/v5_test.ts | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/std/uuid/v5_test.ts b/std/uuid/v5_test.ts new file mode 100644 index 000000000..d24da36b5 --- /dev/null +++ b/std/uuid/v5_test.ts @@ -0,0 +1,83 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { assert, assertEquals } from "../testing/asserts.ts"; +import { generate, validate } from "./v5.ts"; + +const NAMESPACE = "1b671a64-40d5-491e-99b0-da01ff1f3341"; + +Deno.test({ + name: "[UUID] test_uuid_v5", + fn(): void { + const u = generate({ value: "", namespace: NAMESPACE }); + assertEquals(typeof u, "string", "returns a string"); + assert(u !== "", "return string is not empty"); + }, +}); + +Deno.test({ + name: "[UUID] test_uuid_v5_format", + fn(): void { + for (let i = 0; i < 10000; i++) { + const u = generate({ value: String(i), namespace: NAMESPACE }) as string; + assert(validate(u), `${u} is not a valid uuid v5`); + } + }, +}); + +Deno.test({ + name: "[UUID] test_uuid_v5_option", + fn(): void { + const v5Options = { + value: "Hello, World", + namespace: NAMESPACE, + }; + const u = generate(v5Options); + assertEquals(u, "4b4f2adc-5b27-57b5-8e3a-c4c4bcf94f05"); + }, +}); + +Deno.test({ + name: "[UUID] test_uuid_v5_buf_offset", + fn(): void { + const buf = [ + 75, + 79, + 42, + 220, + 91, + 39, + 87, + 181, + 142, + 58, + 196, + 196, + 188, + 249, + 79, + 5, + ]; + const origin = JSON.parse(JSON.stringify(buf)); + generate({ value: "Hello, World", namespace: NAMESPACE }, buf); + assertEquals(origin, buf); + + generate({ value: "Hello, World", namespace: NAMESPACE }, buf, 3); + assertEquals(origin.slice(0, 3), buf.slice(0, 3)); + assertEquals(origin, buf.slice(3)); + }, +}); + +Deno.test({ + name: "[UUID] is_valid_uuid_v5", + fn(): void { + const u = generate({ + value: "Hello, World", + namespace: "1b671a64-40d5-491e-99b0-da01ff1f3341", + }) as string; + const t = "4b4f2adc-5b27-57b5-8e3a-c4c4bcf94f05"; + const n = "4b4f2adc-5b27-17b5-8e3a-c4c4bcf94f05"; + + assert(validate(u), `generated ${u} should be valid`); + assert(validate(t), `${t} should be valid`); + assert(!validate(n), `${n} should not be valid`); + }, +}); |