UNPKG

1.46 kBJavaScriptView Raw
1const assert = require('assert');
2const { generate, Tokenizer, create, timeCoded, timeDecoded } = require('../namespace/token');
3
4describe("Token Tests", function () {
5
6 it('should create a 6 character token', function () {
7 assert(generate(6).length, 6);
8 });
9
10 it('should create a 12 character token', function () {
11 assert(generate(12).length, 12);
12 });
13
14 it('should create a new tokenizer from a provided radix', function () {
15 let myTokenizer = create('0123456789');
16 assert(/\d/.test(myTokenizer.generate(6)), false);
17 });
18
19 it('should create a TimeEncoded Token', function () {
20 let timeToken = timeCoded();
21 assert.ok(timeToken);
22 assert.equal(timeDecoded(timeToken).constructor === Date, true);
23 });
24
25 it('should create a TimeEncoded Token and decode it to type = Date', function () {
26 let timeToken = timeCoded();
27 assert.ok(timeToken);
28 assert.equal(timeDecoded(timeToken).constructor === Date, true);
29 });
30
31 it('The decoded time token should only be a few milliseconds apart from creating it at most', function () {
32 let timeToken = timeCoded();
33 let createdAt = new Date().getTime();
34 let decoded = timeDecoded(timeToken).getTime();
35 // The decoded token should be after or equal to the creation time.
36 assert.equal(createdAt <= decoded, true);
37 // The creation time should be no more than 100ms before the decoded token
38 assert.equal(createdAt + 100 > decoded, true);
39 });
40
41});