nativescript 9.1.0-alpha.4 → 9.1.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common/mobile/android/android-emulator-services.js +11 -3
- package/lib/services/bundler/bundler-compiler-service.js +3 -3
- package/node_modules/debug/LICENSE +20 -0
- package/node_modules/debug/README.md +481 -0
- package/node_modules/debug/package.json +64 -0
- package/node_modules/debug/src/browser.js +272 -0
- package/node_modules/debug/src/common.js +292 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/node.js +263 -0
- package/node_modules/ms/index.js +162 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +38 -0
- package/node_modules/ms/readme.md +59 -0
- package/node_modules/universal-analytics/.travis.yml +11 -0
- package/node_modules/universal-analytics/AcceptableParams.md +757 -0
- package/node_modules/universal-analytics/HISTORY.md +170 -0
- package/node_modules/universal-analytics/Makefile +5 -0
- package/node_modules/universal-analytics/README.md +651 -0
- package/node_modules/universal-analytics/index.js +2 -0
- package/node_modules/universal-analytics/lib/config.js +171 -0
- package/node_modules/universal-analytics/lib/index.js +563 -0
- package/node_modules/universal-analytics/lib/request.js +73 -0
- package/node_modules/universal-analytics/lib/utils.js +29 -0
- package/node_modules/universal-analytics/package.json +33 -0
- package/node_modules/universal-analytics/test/_enqueue.js +144 -0
- package/node_modules/universal-analytics/test/event.js +346 -0
- package/node_modules/universal-analytics/test/exception.js +233 -0
- package/node_modules/universal-analytics/test/index.js +141 -0
- package/node_modules/universal-analytics/test/item.js +550 -0
- package/node_modules/universal-analytics/test/middleware.js +119 -0
- package/node_modules/universal-analytics/test/mocha.opts +3 -0
- package/node_modules/universal-analytics/test/pageview.js +286 -0
- package/node_modules/universal-analytics/test/send.js +232 -0
- package/node_modules/universal-analytics/test/set.js +68 -0
- package/node_modules/universal-analytics/test/timing.js +363 -0
- package/node_modules/universal-analytics/test/transaction.js +371 -0
- package/node_modules/uuid/LICENSE.md +9 -0
- package/node_modules/uuid/README.md +510 -0
- package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
- package/node_modules/uuid/dist/cjs/index.js +31 -0
- package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/max.js +3 -0
- package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/md5.js +13 -0
- package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
- package/node_modules/uuid/dist/cjs/native.js +4 -0
- package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/nil.js +3 -0
- package/node_modules/uuid/dist/cjs/package.json +1 -0
- package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/parse.js +11 -0
- package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/regex.js +3 -0
- package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
- package/node_modules/uuid/dist/cjs/rng.js +13 -0
- package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/sha1.js +13 -0
- package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/cjs/stringify.js +39 -0
- package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
- package/node_modules/uuid/dist/cjs/types.js +2 -0
- package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
- package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
- package/node_modules/uuid/dist/cjs/v1.js +87 -0
- package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
- package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v3.js +14 -0
- package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
- package/node_modules/uuid/dist/cjs/v35.js +41 -0
- package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/v4.js +29 -0
- package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v5.js +14 -0
- package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/v6.js +19 -0
- package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
- package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v7.js +69 -0
- package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/validate.js +7 -0
- package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/version.js +10 -0
- package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
- package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
- package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
- package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
- package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
- package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
- package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
- package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
- package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
- package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
- package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
- package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
- package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
- package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
- package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
- package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
- package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
- package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
- package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
- package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
- package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
- package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
- package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
- package/node_modules/uuid/dist/esm/bin/uuid +2 -0
- package/node_modules/uuid/dist/esm/index.d.ts +15 -0
- package/node_modules/uuid/dist/esm/index.js +14 -0
- package/node_modules/uuid/dist/esm/max.d.ts +2 -0
- package/node_modules/uuid/dist/esm/max.js +1 -0
- package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
- package/node_modules/uuid/dist/esm/md5.js +11 -0
- package/node_modules/uuid/dist/esm/native.d.ts +6 -0
- package/node_modules/uuid/dist/esm/native.js +2 -0
- package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
- package/node_modules/uuid/dist/esm/nil.js +1 -0
- package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
- package/node_modules/uuid/dist/esm/parse.js +9 -0
- package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
- package/node_modules/uuid/dist/esm/regex.js +1 -0
- package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
- package/node_modules/uuid/dist/esm/rng.js +10 -0
- package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
- package/node_modules/uuid/dist/esm/sha1.js +11 -0
- package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/esm/stringify.js +35 -0
- package/node_modules/uuid/dist/esm/types.d.ts +21 -0
- package/node_modules/uuid/dist/esm/types.js +1 -0
- package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
- package/node_modules/uuid/dist/esm/v1.js +83 -0
- package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v3.js +9 -0
- package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
- package/node_modules/uuid/dist/esm/v35.js +36 -0
- package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
- package/node_modules/uuid/dist/esm/v4.js +27 -0
- package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v5.js +9 -0
- package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
- package/node_modules/uuid/dist/esm/v6.js +17 -0
- package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v7.js +65 -0
- package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
- package/node_modules/uuid/dist/esm/validate.js +5 -0
- package/node_modules/uuid/dist/esm/version.d.ts +2 -0
- package/node_modules/uuid/dist/esm/version.js +8 -0
- package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
- package/node_modules/uuid/dist/esm-browser/index.js +14 -0
- package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/max.js +1 -0
- package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
- package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/native.js +2 -0
- package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
- package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
- package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
- package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
- package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
- package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
- package/node_modules/uuid/dist/esm-browser/types.js +1 -0
- package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
- package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
- package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
- package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
- package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
- package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
- package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
- package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
- package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
- package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/version.js +8 -0
- package/node_modules/uuid/package.json +132 -0
- package/package.json +8 -4
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
|
|
2
|
+
var qs = require("querystring");
|
|
3
|
+
var uuid = require("uuid");
|
|
4
|
+
var should = require("should");
|
|
5
|
+
var sinon = require("sinon");
|
|
6
|
+
var url = require("url");
|
|
7
|
+
|
|
8
|
+
var ua = require("../lib/index.js");
|
|
9
|
+
var utils = require("../lib/utils.js");
|
|
10
|
+
var config = require("../lib/config.js");
|
|
11
|
+
var request = require("../lib/request");
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
describe("ua", function () {
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
describe("#exception", function () {
|
|
18
|
+
var _enqueue;
|
|
19
|
+
|
|
20
|
+
beforeEach(function () {
|
|
21
|
+
_enqueue = sinon.stub(ua.Visitor.prototype, "_enqueue", function () {
|
|
22
|
+
if (arguments.length === 3 && typeof arguments[2] === 'function') {
|
|
23
|
+
arguments[2]();
|
|
24
|
+
}
|
|
25
|
+
return this;
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
afterEach(function () {
|
|
30
|
+
_enqueue.restore()
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
it("should accept arguments (description)", function () {
|
|
35
|
+
var description = Math.random().toString();
|
|
36
|
+
|
|
37
|
+
var visitor = ua()
|
|
38
|
+
|
|
39
|
+
var result = visitor.exception(description);
|
|
40
|
+
|
|
41
|
+
visitor._context = result._context;
|
|
42
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
43
|
+
|
|
44
|
+
result.should.be.instanceof(ua.Visitor);
|
|
45
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
46
|
+
|
|
47
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
48
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
49
|
+
_enqueue.args[0][1].should.have.keys("exd")
|
|
50
|
+
_enqueue.args[0][1].exd.should.equal(description);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
it("should accept arguments (description, fn)", function () {
|
|
55
|
+
var description = Math.random().toString();
|
|
56
|
+
var fn = sinon.spy();
|
|
57
|
+
|
|
58
|
+
ua().exception(description, fn);
|
|
59
|
+
|
|
60
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
61
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
62
|
+
_enqueue.args[0][1].should.have.keys("exd")
|
|
63
|
+
_enqueue.args[0][1].exd.should.equal(description);
|
|
64
|
+
|
|
65
|
+
fn.calledOnce.should.equal(true, "callback should have been called once")
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
it("should accept arguments (description, fatal)", function () {
|
|
70
|
+
var description = Math.random().toString();
|
|
71
|
+
var fatal = +!!(Math.random().toString()*2);
|
|
72
|
+
|
|
73
|
+
var visitor = ua()
|
|
74
|
+
|
|
75
|
+
var result = visitor.exception(description, fatal);
|
|
76
|
+
|
|
77
|
+
visitor._context = result._context;
|
|
78
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
79
|
+
|
|
80
|
+
result.should.be.instanceof(ua.Visitor);
|
|
81
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
82
|
+
|
|
83
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
84
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
85
|
+
_enqueue.args[0][1].should.have.keys("exd", "exf")
|
|
86
|
+
_enqueue.args[0][1].exd.should.equal(description);
|
|
87
|
+
_enqueue.args[0][1].exf.should.equal(fatal);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
it("should accept arguments (description, fatal, fn)", function () {
|
|
92
|
+
var description = Math.random().toString();
|
|
93
|
+
var fatal = +!!(Math.random().toString()*2);
|
|
94
|
+
var fn = sinon.spy();
|
|
95
|
+
|
|
96
|
+
var visitor = ua()
|
|
97
|
+
|
|
98
|
+
var result = visitor.exception(description, fatal, fn);
|
|
99
|
+
|
|
100
|
+
visitor._context = result._context;
|
|
101
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
102
|
+
|
|
103
|
+
result.should.be.instanceof(ua.Visitor);
|
|
104
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
105
|
+
|
|
106
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
107
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
108
|
+
_enqueue.args[0][1].should.have.keys("exd", "exf")
|
|
109
|
+
_enqueue.args[0][1].exd.should.equal(description);
|
|
110
|
+
_enqueue.args[0][1].exf.should.equal(fatal);
|
|
111
|
+
|
|
112
|
+
fn.calledOnce.should.equal(true, "callback should have been called once")
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
it("should accept arguments (description, fatal, params)", function () {
|
|
117
|
+
var description = Math.random().toString();
|
|
118
|
+
var fatal = +!!(Math.random().toString()*2);
|
|
119
|
+
var params = {"p": "/" + Math.random()}
|
|
120
|
+
|
|
121
|
+
var visitor = ua()
|
|
122
|
+
|
|
123
|
+
var result = visitor.exception(description, fatal, params);
|
|
124
|
+
|
|
125
|
+
visitor._context = result._context;
|
|
126
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
127
|
+
|
|
128
|
+
result.should.be.instanceof(ua.Visitor);
|
|
129
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
130
|
+
|
|
131
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
132
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
133
|
+
_enqueue.args[0][1].should.have.keys("exd", "exf", "p")
|
|
134
|
+
_enqueue.args[0][1].exd.should.equal(description);
|
|
135
|
+
_enqueue.args[0][1].exf.should.equal(fatal);
|
|
136
|
+
_enqueue.args[0][1].p.should.equal(params.p);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
it("should accept arguments (description, fatal, params, fn)", function () {
|
|
141
|
+
var description = Math.random().toString();
|
|
142
|
+
var fatal = +!!(Math.random().toString()*2);
|
|
143
|
+
var params = {"p": "/" + Math.random()};
|
|
144
|
+
var fn = sinon.spy();
|
|
145
|
+
|
|
146
|
+
var visitor = ua()
|
|
147
|
+
|
|
148
|
+
var result = visitor.exception(description, fatal, params, fn);
|
|
149
|
+
|
|
150
|
+
visitor._context = result._context;
|
|
151
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
152
|
+
|
|
153
|
+
result.should.be.instanceof(ua.Visitor);
|
|
154
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
155
|
+
|
|
156
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
157
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
158
|
+
_enqueue.args[0][1].should.have.keys("exd", "exf", "p")
|
|
159
|
+
_enqueue.args[0][1].exd.should.equal(description);
|
|
160
|
+
_enqueue.args[0][1].exf.should.equal(fatal);
|
|
161
|
+
_enqueue.args[0][1].p.should.equal(params.p);
|
|
162
|
+
|
|
163
|
+
fn.calledOnce.should.equal(true, "callback should have been called once")
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
it("should accept arguments (params)", function () {
|
|
168
|
+
var params = {
|
|
169
|
+
exd: Math.random().toString(),
|
|
170
|
+
exf: +!!(Math.random().toString()*2),
|
|
171
|
+
p: "/" + Math.random()
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
var visitor = ua()
|
|
175
|
+
|
|
176
|
+
var result = visitor.exception(params);
|
|
177
|
+
|
|
178
|
+
visitor._context = result._context;
|
|
179
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
180
|
+
|
|
181
|
+
result.should.be.instanceof(ua.Visitor);
|
|
182
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
183
|
+
|
|
184
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
185
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
186
|
+
_enqueue.args[0][1].should.have.keys("exd", "exf", "p")
|
|
187
|
+
_enqueue.args[0][1].exd.should.equal(params.exd);
|
|
188
|
+
_enqueue.args[0][1].exf.should.equal(params.exf);
|
|
189
|
+
_enqueue.args[0][1].p.should.equal(params.p);
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
it("should accept arguments (params, fn)", function () {
|
|
194
|
+
var params = {
|
|
195
|
+
exd: Math.random().toString(),
|
|
196
|
+
exf: +!!(Math.random().toString()*2),
|
|
197
|
+
p: "/" + Math.random()
|
|
198
|
+
};
|
|
199
|
+
var fn = sinon.spy();
|
|
200
|
+
|
|
201
|
+
var visitor = ua()
|
|
202
|
+
|
|
203
|
+
var result = visitor.exception(params, fn);
|
|
204
|
+
|
|
205
|
+
visitor._context = result._context;
|
|
206
|
+
result.should.eql(visitor, "should return a visitor that is identical except for the context");
|
|
207
|
+
|
|
208
|
+
result.should.be.instanceof(ua.Visitor);
|
|
209
|
+
result._context.should.eql(_enqueue.args[0][1], "the pageview params should be persisted as the context of the visitor clone")
|
|
210
|
+
|
|
211
|
+
_enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
|
|
212
|
+
_enqueue.args[0][0].should.equal("exception");
|
|
213
|
+
_enqueue.args[0][1].should.have.keys("exd", "exf", "p")
|
|
214
|
+
_enqueue.args[0][1].exd.should.equal(params.exd);
|
|
215
|
+
_enqueue.args[0][1].exf.should.equal(params.exf);
|
|
216
|
+
_enqueue.args[0][1].p.should.equal(params.p);
|
|
217
|
+
|
|
218
|
+
fn.calledOnce.should.equal(true, "callback should have been called once")
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
|
|
2
|
+
var qs = require("querystring");
|
|
3
|
+
var uuid = require("uuid");
|
|
4
|
+
var should = require("should");
|
|
5
|
+
var sinon = require("sinon");
|
|
6
|
+
var url = require("url");
|
|
7
|
+
|
|
8
|
+
var ua = require("../lib/index.js");
|
|
9
|
+
var utils = require("../lib/utils.js");
|
|
10
|
+
var config = require("../lib/config.js");
|
|
11
|
+
var request = require("../lib/request");
|
|
12
|
+
|
|
13
|
+
const v4Regex = new RegExp(/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i);
|
|
14
|
+
|
|
15
|
+
describe("ua", function () {
|
|
16
|
+
|
|
17
|
+
it("should be usable as a function", function () {
|
|
18
|
+
ua("foo").should.be.instanceof(ua.Visitor);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("should be usable as a constructor", function () {
|
|
22
|
+
new ua("foo").should.be.instanceof(ua.Visitor);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("should accept arguments (tid, cid, options)", function () {
|
|
26
|
+
var tid = "UA-XXXXX-XX"
|
|
27
|
+
var cid = uuid.v4()
|
|
28
|
+
var options = {};
|
|
29
|
+
|
|
30
|
+
var visitor = ua(tid, cid, options)
|
|
31
|
+
|
|
32
|
+
visitor.tid.should.equal(tid)
|
|
33
|
+
visitor.cid.should.equal(cid)
|
|
34
|
+
visitor.options.should.equal(options)
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("should accept arguments (tid, cid)", function () {
|
|
38
|
+
var tid = "UA-XXXXX-XX"
|
|
39
|
+
var cid = uuid.v4()
|
|
40
|
+
|
|
41
|
+
var visitor = ua(tid, cid)
|
|
42
|
+
|
|
43
|
+
visitor.tid.should.equal(tid)
|
|
44
|
+
visitor.cid.should.equal(cid)
|
|
45
|
+
visitor.options.should.eql({}, "An empty options hash should've been created")
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("should accept arguments (tid, options)", function () {
|
|
49
|
+
var tid = Math.random().toString();
|
|
50
|
+
var options = {}
|
|
51
|
+
|
|
52
|
+
var visitor = ua(tid, options)
|
|
53
|
+
|
|
54
|
+
visitor.tid.should.equal(tid)
|
|
55
|
+
utils.isUuid(visitor.cid).should.equal(true, "A valid random UUID should have been generated")
|
|
56
|
+
visitor.options.should.eql(options)
|
|
57
|
+
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("should accept arguments (options)", function () {
|
|
61
|
+
var options = {}
|
|
62
|
+
|
|
63
|
+
var visitor = ua(options);
|
|
64
|
+
|
|
65
|
+
visitor.should.have.property('tid', undefined);
|
|
66
|
+
utils.isUuid(visitor.cid).should.equal(true, "A valid random UUID should have been generated")
|
|
67
|
+
visitor.options.should.eql(options)
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it("should accept tid and cid via the options arguments", function () {
|
|
71
|
+
var options = {
|
|
72
|
+
tid: "UA-XXXXX-XX",
|
|
73
|
+
cid: uuid.v4()
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
var visitor = ua(options);
|
|
77
|
+
|
|
78
|
+
visitor.tid.should.equal(options.tid)
|
|
79
|
+
visitor.cid.should.equal(options.cid)
|
|
80
|
+
visitor.options.should.equal(options)
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("should generate new cid (UUID) if provided one is in wrong format", function () {
|
|
84
|
+
var options = {
|
|
85
|
+
tid: "UA-XXXXX-XX",
|
|
86
|
+
cid: "custom-format-cid"
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var visitor = ua(options);
|
|
90
|
+
|
|
91
|
+
visitor.cid.should.not.equal(options.cid)
|
|
92
|
+
visitor.cid.should.match(v4Regex)
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("should accept custom cid format when strictCidFormat is false", function () {
|
|
96
|
+
var options = {
|
|
97
|
+
tid: "UA-XXXXX-XX",
|
|
98
|
+
cid: "custom-format-cid",
|
|
99
|
+
strictCidFormat: false
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
var visitor = ua(options);
|
|
103
|
+
|
|
104
|
+
visitor.cid.should.equal(options.cid)
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
describe("params", function () {
|
|
109
|
+
|
|
110
|
+
var visitor;
|
|
111
|
+
|
|
112
|
+
before(function () {
|
|
113
|
+
var tid = "UA-XXXXX-XX";
|
|
114
|
+
var cid = uuid.v4();
|
|
115
|
+
visitor = ua(tid, cid);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
it('should not translate params', function(){
|
|
119
|
+
var params = {
|
|
120
|
+
tid: 1,
|
|
121
|
+
cid: 1,
|
|
122
|
+
somefake: 1,
|
|
123
|
+
v: 'a'
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
visitor._translateParams(params).should.eql(params);
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
it('should match all parameters and each should be in the list of accepted', function(){
|
|
130
|
+
var res = visitor._translateParams(config.parametersMap);
|
|
131
|
+
for (var i in res) {
|
|
132
|
+
if (res.hasOwnProperty(i)) {
|
|
133
|
+
res[i].should.equal(i);
|
|
134
|
+
config.acceptedParameters.should.containEql(i);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
});
|