86 lines
3.6 KiB
JavaScript
86 lines
3.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
require("mocha");
|
|
const validator = require("validator");
|
|
const assert = require("assert");
|
|
const UUID_1 = require("../classes/UUID");
|
|
describe('UUID', () => {
|
|
describe('random', () => {
|
|
it('should generate a random, valid v4 UUID', () => {
|
|
const uuid = UUID_1.UUID.random().toString();
|
|
const secondUUID = UUID_1.UUID.random().toString();
|
|
if (typeof uuid !== 'string') {
|
|
assert.fail('Returned UUID is not a string');
|
|
}
|
|
if (!validator.isUUID(uuid)) {
|
|
assert.fail('Returned string is not a valid UUID');
|
|
}
|
|
if (uuid === '00000000-0000-0000-0000-000000000000') {
|
|
assert.fail('Random UUID should not be zero');
|
|
}
|
|
if (typeof secondUUID !== 'string') {
|
|
assert.fail('Returned second UUID is not a string');
|
|
}
|
|
if (!validator.isUUID(secondUUID)) {
|
|
assert.fail('Second UUID is not a valid UUID');
|
|
}
|
|
if (secondUUID === '00000000-0000-0000-0000-000000000000') {
|
|
assert.fail('Random UUID should not be zero');
|
|
}
|
|
if (uuid === secondUUID) {
|
|
assert.fail('Two random UUIDs match! (Not random)');
|
|
}
|
|
assert.ok(true);
|
|
});
|
|
});
|
|
describe('zero', () => {
|
|
it('should generate a zeroed, valid v4 UUID', () => {
|
|
const uuid = UUID_1.UUID.zero().toString();
|
|
if (typeof uuid !== 'string') {
|
|
assert.fail('Returned UUID is not a string');
|
|
}
|
|
if (!validator.isUUID(uuid)) {
|
|
assert.fail('Returned string is not a valid UUID');
|
|
}
|
|
if (uuid !== '00000000-0000-0000-0000-000000000000') {
|
|
assert.fail('UUID is not zero');
|
|
}
|
|
assert.ok(true);
|
|
});
|
|
});
|
|
describe('encode/decode', () => {
|
|
it('should correctly decode a 16-byte UUID from a buffer', () => {
|
|
const buf = Buffer.from('00004af668bb6fe34893881408f586c5657c4e1c9910', 'hex');
|
|
const uuid = new UUID_1.UUID(buf, 2);
|
|
const str = uuid.toString();
|
|
if (typeof str !== 'string') {
|
|
assert.fail('Returned UUID is not a string');
|
|
}
|
|
if (!validator.isUUID(str)) {
|
|
assert.fail('Returned string is not a valid UUID');
|
|
}
|
|
if (str !== '4af668bb-6fe3-4893-8814-08f586c5657c') {
|
|
assert.fail('UUID decoded incorrectly');
|
|
}
|
|
assert.ok(true);
|
|
});
|
|
it('should correct encode a UUID into the correct position in a buffer', () => {
|
|
const buf = Buffer.alloc(22);
|
|
const uuid = new UUID_1.UUID('4af668bb-6fe3-4893-8814-08f586c5657c');
|
|
uuid.writeToBuffer(buf, 2);
|
|
const bufCmp = Buffer.from('00004af668bb6fe34893881408f586c5657c00000000', 'hex');
|
|
if (buf.compare(bufCmp) !== 0) {
|
|
assert.fail('Encoded buffer does not match expected output');
|
|
}
|
|
const result = uuid.toString();
|
|
if (typeof result !== 'string') {
|
|
assert.fail('Returned UUID is not a string');
|
|
}
|
|
if (!validator.isUUID(result)) {
|
|
assert.fail('Returned string is not a valid UUID');
|
|
}
|
|
assert.ok(true);
|
|
});
|
|
});
|
|
});
|
|
//# sourceMappingURL=uuid.js.map
|