UNPKG

2.69 kBJavaScriptView Raw
1// Load modules
2
3var Lab = require('lab');
4var Confidence = require('../');
5
6
7// Declare internals
8
9var internals = {};
10
11
12// Test shortcuts
13
14var lab = exports.lab = Lab.script();
15var expect = Lab.expect;
16var before = lab.before;
17var after = lab.after;
18var describe = lab.experiment;
19var it = lab.test;
20
21
22describe('Confidence', function () {
23
24 describe('Id', function () {
25
26 it('generates an id', function (done) {
27
28 var id = Confidence.id.generate();
29 expect(id.length).to.equal(36);
30 done();
31 });
32
33 it('generates 1000 unique ids', function (done) {
34
35 var ids = {};
36 for (var i = 0; i < 1000; ++i) {
37 var id = Confidence.id.generate();
38 expect(ids[id]).to.not.exist;
39 expect(id.length).to.equal(36);
40 ids[id] = true;
41 }
42 done();
43 });
44
45 it('converts id to criteria', function (done) {
46
47 var id = 'a44f476c-1326-499e-9cf9-2111c31670d8';
48 var criteria = Confidence.id.criteria(id);
49 expect(criteria.random.a).to.equal(22);
50 expect(criteria.random.b).to.equal(17);
51 expect(criteria.random.c).to.equal(68);
52 expect(criteria.random.d).to.equal(73);
53 expect(criteria.random.e).to.equal(24);
54 expect(criteria.random.f).to.equal(36);
55 expect(criteria.random.g).to.equal(52);
56 expect(criteria.random.h).to.equal(15);
57 expect(criteria.random.i).to.equal(48);
58 expect(criteria.random.j).to.equal(71);
59 expect(criteria.random.k).to.equal(7);
60 expect(criteria.random.l).to.equal(69);
61 expect(criteria.random.m).to.equal(81);
62 expect(criteria.random.n).to.equal(3);
63 done();
64 });
65
66 it('returns null criteria on invalid id length', function (done) {
67
68 var id = 'a44f476c-1326-499e-9cf9-2111c31670d';
69 var criteria = Confidence.id.criteria(id);
70 expect(criteria).to.equal(null);
71 done();
72 });
73
74 it('returns null criteria on out of range left random segment', function (done) {
75
76 var id = 'a44f476c-1326-499e-9cf9-ffffff000000';
77 var criteria = Confidence.id.criteria(id);
78 expect(criteria).to.equal(null);
79 done();
80 });
81
82 it('returns null criteria on out of range right random segment', function (done) {
83
84 var id = 'a44f476c-1326-499e-9cf9-000000ffffff';
85 var criteria = Confidence.id.criteria(id);
86 expect(criteria).to.equal(null);
87 done();
88 });
89 });
90});