@project-sunbird/telemetry-sdk 0.1.0 → 1.0.0
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/{dist/index.js → index.js} +13 -11
- package/package.json +27 -24
- package/_config.yml +0 -1
- package/core/auth-token-generator.min.js +0 -8
- package/core/telemetrySyncManager.js +0 -96
- package/core/telemetryV3Interface.js +0 -607
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/base.css +0 -224
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/block-navigation.js +0 -79
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/favicon.png +0 -0
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/index.html +0 -96
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/prettify.css +0 -1
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/prettify.js +0 -2
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/sorter.js +0 -170
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov.info +0 -0
- package/dist/README.md +0 -915
- package/dist/package.json +0 -68
- package/gruntfile.js +0 -40
- package/gulpfile.js +0 -20
- package/karma.renderer.config.js +0 -76
- package/libs/ajv.min.js +0 -3
- package/libs/detectClient.js +0 -51
- package/libs/fingerprint2.min.js +0 -1411
- package/libs/md5.js +0 -334
- package/libs/ua-parser.min.js +0 -1
- package/npm-audit.html +0 -2949
- package/schema/actor.json +0 -15
- package/schema/assess.json +0 -68
- package/schema/audit.json +0 -54
- package/schema/cdata.json +0 -21
- package/schema/common.json +0 -38
- package/schema/context.json +0 -34
- package/schema/dspec.json +0 -58
- package/schema/end.json +0 -61
- package/schema/error.json +0 -62
- package/schema/event.json +0 -51
- package/schema/exdata.json +0 -43
- package/schema/feedback.json +0 -47
- package/schema/heartbeat.json +0 -32
- package/schema/impression.json +0 -94
- package/schema/inlineobject.json +0 -39
- package/schema/interact.json +0 -69
- package/schema/interrupt.json +0 -46
- package/schema/items.json +0 -57
- package/schema/log.json +0 -63
- package/schema/object.json +0 -21
- package/schema/parent.json +0 -14
- package/schema/pdata.json +0 -19
- package/schema/plugin.json +0 -23
- package/schema/question.json +0 -55
- package/schema/response.json +0 -53
- package/schema/rollup.json +0 -22
- package/schema/search.json +0 -71
- package/schema/share.json +0 -49
- package/schema/spec.js +0 -29
- package/schema/start.json +0 -64
- package/schema/target.json +0 -27
- package/schema/telemetry-spec.js +0 -1
- package/schema/uaspec.json +0 -26
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/base.css +0 -213
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/cobertura-coverage.xml +0 -391
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/core/index.html +0 -106
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/core/telemetrySyncManager.js.html +0 -263
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/core/telemetryV3Interface.js.html +0 -1628
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/index.html +0 -93
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/prettify.css +0 -1
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/prettify.js +0 -1
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/sort-arrow-sprite.png +0 -0
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/sorter.js +0 -158
- package/test/coverage/coverage-final.json +0 -3
- package/test/coverage/lcov.info +0 -461
- package/test/spec/telemetry-spec.js +0 -1
- package/test/spec/telemetrySyncManager.spec.js +0 -91
- package/test/spec/telemetryV3Interface.spec.js +0 -567
- package/test/spec/telemetrylib.fun.spec.js +0 -408
|
@@ -1,567 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Telemetry V3 Library test cases
|
|
3
|
-
* @author Akash Gupta <akash.gupta@tarento.com>
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
describe("Telemetry tests", function() {
|
|
7
|
-
var telemetryObj, config, newConfig;
|
|
8
|
-
this.testFunction = function(data) {
|
|
9
|
-
console.log(data.detail.eid, " Telemetry is generated");
|
|
10
|
-
}
|
|
11
|
-
document.addEventListener('TelemetryEvent', this.testFunction);
|
|
12
|
-
var instance = this;
|
|
13
|
-
beforeAll(function() {
|
|
14
|
-
telemetryObj = EkTelemetry;
|
|
15
|
-
config = JSON.parse('{"uid":"anonymous","channel":"in.ekstep","pdata":{"id":"in.ekstep","ver":"1.0","pid":""},"env":"preview","sid":"","did":"","cdata":[{"type":"worksheet","id":"do_736298262"}],"rollup":{"l1":"","l2":""},"object":{"id":"do_9823y23","type":"Conten","ver":"","rollup":{"l1":"","l2":""}},"batchsize":20,"host":"https://api.ekstep.in","endpoint":"/data/v3/telemetry","tags":[], "apislug":"/action"}');
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
describe("Telemetry START", function() {
|
|
19
|
-
xit("It should not call init if pdata spec is invalid in config", function() {
|
|
20
|
-
var newConfig = JSON.parse(JSON.stringify(config));
|
|
21
|
-
delete newConfig.pdata.id;
|
|
22
|
-
data = JSON.parse('{ "type": "player" }');
|
|
23
|
-
data.uaspec = {}
|
|
24
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
25
|
-
var telemetryElement = telemetryObj.start(newConfig, "abc", "123", data);
|
|
26
|
-
expect(telemetryElement).toBeUndefined();
|
|
27
|
-
expect(EkTelemetry.initialized).not.toBeTruthy();
|
|
28
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
29
|
-
})
|
|
30
|
-
xit("It should not call init if object spec is invalid in config", function() {
|
|
31
|
-
var newConfig = JSON.parse(JSON.stringify(config));
|
|
32
|
-
data = JSON.parse('{ "type": "player" }');
|
|
33
|
-
data.object = {}
|
|
34
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
35
|
-
expect(EkTelemetry.initialized).not.toBeTruthy();
|
|
36
|
-
})
|
|
37
|
-
xit("It should not call init if required data is unavailable", function() {
|
|
38
|
-
data = {};
|
|
39
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
40
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", data);
|
|
41
|
-
expect(telemetryElement).toBeUndefined();
|
|
42
|
-
expect(EkTelemetry.initialized).not.toBeTruthy();
|
|
43
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
44
|
-
|
|
45
|
-
})
|
|
46
|
-
xit("It should not call init if required dspec is unavailable", function() {
|
|
47
|
-
data = {};
|
|
48
|
-
data.type = 'player';
|
|
49
|
-
data.dspec = {}
|
|
50
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
51
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", data);
|
|
52
|
-
expect(telemetryElement).toBeUndefined();
|
|
53
|
-
expect(EkTelemetry.initialized).not.toBeTruthy();
|
|
54
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
55
|
-
|
|
56
|
-
})
|
|
57
|
-
xit("It should invoke init", function() {
|
|
58
|
-
data = JSON.parse('{ "type": "player" }');
|
|
59
|
-
var context = {};
|
|
60
|
-
context.runningEnv = 'client'
|
|
61
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
62
|
-
config.sid = '3432432';
|
|
63
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", data, context);
|
|
64
|
-
expect(EkTelemetry.initialized).toBeTruthy();
|
|
65
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
it("It should invoke init when running in server sid", function() {
|
|
69
|
-
data = JSON.parse('{ "type": "player" }');
|
|
70
|
-
var context = {};
|
|
71
|
-
config.runningEnv = 'server'
|
|
72
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
73
|
-
config.sid = '3432432';
|
|
74
|
-
config.did = '5354353';
|
|
75
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", data, context);
|
|
76
|
-
expect(EkTelemetry.initialized).toBeTruthy();
|
|
77
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
it("It should not generate a finger print when did value is present", function() {
|
|
81
|
-
data = JSON.parse('{ "type": "player" }');
|
|
82
|
-
var context = {};
|
|
83
|
-
config.runningEnv = 'client';
|
|
84
|
-
config.did = '43243243242';
|
|
85
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
86
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", data, context);
|
|
87
|
-
expect(EkTelemetry.initialized).toBeTruthy();
|
|
88
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
89
|
-
})
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
describe("Telemetry IMPRESSION", function() {
|
|
93
|
-
it("It should invoke impression", function() {
|
|
94
|
-
data = JSON.parse('{"type": "view","pageid": "567","uri": "/content/preview/do_23833","visits": {"objid":"123","objtype":"story"}}')
|
|
95
|
-
spyOn(telemetryObj, "impression").and.callThrough();
|
|
96
|
-
// spyOn(instance, "testFunction").and.callThrough();
|
|
97
|
-
var context = {};
|
|
98
|
-
telemetryObj.impression(data, context);
|
|
99
|
-
expect(telemetryObj.impression).toHaveBeenCalled();
|
|
100
|
-
// expect(instance.testFunction).toHaveBeenCalled();
|
|
101
|
-
});
|
|
102
|
-
it("It should return if the required spec is unavailable", function() {
|
|
103
|
-
data = {};
|
|
104
|
-
spyOn(telemetryObj, "impression").and.callThrough();
|
|
105
|
-
var telemetryImpression = telemetryObj.impression({}, {});
|
|
106
|
-
expect(telemetryObj.impression).toHaveBeenCalled();
|
|
107
|
-
expect(telemetryImpression).toBeUndefined();
|
|
108
|
-
});
|
|
109
|
-
it("It should return if visit spec is invalid", function() {
|
|
110
|
-
data = JSON.parse('{"type": "view","pageid": "567","uri": "/content/preview/do_23833","visits": {}}');
|
|
111
|
-
spyOn(telemetryObj, "impression").and.callThrough();
|
|
112
|
-
var context = {};
|
|
113
|
-
var telemetryImpression = telemetryObj.impression(data, context);
|
|
114
|
-
expect(telemetryObj.impression).toHaveBeenCalled();
|
|
115
|
-
expect(telemetryImpression).toBeUndefined();
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
describe("Telemetry INTERACT", function() {
|
|
121
|
-
it("It should invoke interact", function() {
|
|
122
|
-
data = JSON.parse('{"type": "LISTEN","id": "123","target": {"id": "targetId","ver": "1.0","type": "Plugin"},"spec": {"id": "targetId","ver": "1.0"}}')
|
|
123
|
-
spyOn(telemetryObj, "interact").and.callThrough();
|
|
124
|
-
var context = {};
|
|
125
|
-
telemetryObj.interact(data, context);
|
|
126
|
-
expect(telemetryObj.interact).toHaveBeenCalled();
|
|
127
|
-
});
|
|
128
|
-
it("It should return if the required data is unavailable", function() {
|
|
129
|
-
data = {}
|
|
130
|
-
spyOn(telemetryObj, "interact").and.callThrough();
|
|
131
|
-
var telemetryInteract = telemetryObj.interact(data);
|
|
132
|
-
expect(telemetryObj.interact).toHaveBeenCalled();
|
|
133
|
-
expect(telemetryInteract).toBeUndefined();
|
|
134
|
-
});
|
|
135
|
-
it("It should return if target spec is invalid", function() {
|
|
136
|
-
data = JSON.parse('{"type": "LISTEN","id": "123","target": {"id": "targetId","ver": "1.0"}}');
|
|
137
|
-
spyOn(telemetryObj, "interact").and.callThrough();
|
|
138
|
-
var telemetryInteract = telemetryObj.interact(data);
|
|
139
|
-
expect(telemetryObj.interact).toHaveBeenCalled();
|
|
140
|
-
expect(telemetryInteract).toBeUndefined();
|
|
141
|
-
});
|
|
142
|
-
it("It should return if plugin spec is invalid", function() {
|
|
143
|
-
data = JSON.parse('{"type": "LISTEN","id": "123","spec": {"id": "targetId"}}');
|
|
144
|
-
data.plugin = {}
|
|
145
|
-
spyOn(telemetryObj, "interact").and.callThrough();
|
|
146
|
-
var telemetryInteract = telemetryObj.interact(data);
|
|
147
|
-
expect(telemetryObj.interact).toHaveBeenCalled();
|
|
148
|
-
expect(telemetryInteract).toBeUndefined();
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
it("It should set the context, actor,object", function() {
|
|
152
|
-
data = JSON.parse('{"type": "LISTEN","id": "123","target": {"id": "targetId","ver": "1.0","type": "Plugin"},"spec": {"id": "targetId","ver": "1.0"}}')
|
|
153
|
-
var options = {
|
|
154
|
-
context: {},
|
|
155
|
-
object: {},
|
|
156
|
-
actor: {},
|
|
157
|
-
tags: {},
|
|
158
|
-
runningEnv: 'server'
|
|
159
|
-
}
|
|
160
|
-
spyOn(telemetryObj, "interact").and.callThrough();
|
|
161
|
-
var telemetryInteract = telemetryObj.interact(data, options);
|
|
162
|
-
expect(telemetryObj.interact).toHaveBeenCalled();
|
|
163
|
-
expect(telemetryInteract).toBeUndefined();
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
describe("Telemetry ASSESS", function() {
|
|
168
|
-
it("It should invoke assess", function() {
|
|
169
|
-
data = JSON.parse('{"item": {"id":"123","maxscore":"1","exlength":"1.23","desc":"description","title":"title"},"pass": "true","score": "100","resvalues": [{"lhs":"9"}],"duration":"121212121"}');
|
|
170
|
-
spyOn(telemetryObj, "assess").and.callThrough();
|
|
171
|
-
var context = {};
|
|
172
|
-
telemetryObj.assess(data, context);
|
|
173
|
-
expect(telemetryObj.assess).toHaveBeenCalled();
|
|
174
|
-
});
|
|
175
|
-
it("It should return if the required data is unavailable", function() {
|
|
176
|
-
data = {};
|
|
177
|
-
spyOn(telemetryObj, "assess").and.callThrough();
|
|
178
|
-
var telemetryAssess = telemetryObj.assess(data);
|
|
179
|
-
expect(telemetryObj.assess).toHaveBeenCalled();
|
|
180
|
-
expect(telemetryAssess).toBeUndefined();
|
|
181
|
-
});
|
|
182
|
-
it("It should return if the question spec is invalid", function() {
|
|
183
|
-
data = JSON.parse('{"item": {"id":"123","maxscore":"1","exlength":"1.23","desc":"description"},"pass": "true","score": "100","resvalues": [{"lhs":"9"}],"duration":"121212121"}')
|
|
184
|
-
spyOn(telemetryObj, "assess").and.callThrough();
|
|
185
|
-
var telemetryAssess = telemetryObj.assess(data);
|
|
186
|
-
expect(telemetryObj.assess).toHaveBeenCalled();
|
|
187
|
-
expect(telemetryAssess).toBeUndefined();
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
describe("Telemetry RESPONSE", function() {
|
|
192
|
-
it("It should log telemetry response event", function() {
|
|
193
|
-
data = JSON.parse('{"target": {"id": "targetId","ver": "1.0","type": "Plugin"},"type": "MATCH","values": [{"lhs":"option1"}]}');
|
|
194
|
-
spyOn(telemetryObj, "response").and.callThrough();
|
|
195
|
-
var context = {}
|
|
196
|
-
telemetryObj.response(data, context);
|
|
197
|
-
expect(telemetryObj.response).toHaveBeenCalled();
|
|
198
|
-
});
|
|
199
|
-
it("It should return if the required data is unavailable", function() {
|
|
200
|
-
data = {};
|
|
201
|
-
spyOn(telemetryObj, "response").and.callThrough();
|
|
202
|
-
var telemetryResponse = telemetryObj.response(data);
|
|
203
|
-
expect(telemetryObj.response).toHaveBeenCalled();
|
|
204
|
-
expect(telemetryResponse).toBeUndefined();
|
|
205
|
-
});
|
|
206
|
-
it("It should return if target spec is invalid", function() {
|
|
207
|
-
data = JSON.parse('{"target": {"ver": "1.0","type": "Plugin"},"type": "MATCH","values": [{"lhs":"option1"}]}')
|
|
208
|
-
spyOn(telemetryObj, "response").and.callThrough();
|
|
209
|
-
var telemetryResponse = telemetryObj.response(data);
|
|
210
|
-
expect(telemetryObj.response).toHaveBeenCalled();
|
|
211
|
-
expect(telemetryResponse).toBeUndefined();
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
describe("Telemetry INTERRUPT", function() {
|
|
216
|
-
it("It should log telemetry interrupt event", function() {
|
|
217
|
-
data = JSON.parse('{"type": "background","pageid": "1234"}')
|
|
218
|
-
spyOn(telemetryObj, "interrupt").and.callThrough();
|
|
219
|
-
var context = {}
|
|
220
|
-
telemetryObj.interrupt(data, context);
|
|
221
|
-
expect(telemetryObj.interrupt).toHaveBeenCalled();
|
|
222
|
-
});
|
|
223
|
-
it("It should return if the required data is unavailable", function() {
|
|
224
|
-
data = {};
|
|
225
|
-
spyOn(telemetryObj, "interrupt").and.callThrough();
|
|
226
|
-
var telemetryResponse = telemetryObj.interrupt(data);
|
|
227
|
-
expect(telemetryObj.interrupt).toHaveBeenCalled();
|
|
228
|
-
expect(telemetryResponse).toBeUndefined(undefined);
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
describe("Telemetry FEEDBACK", function() {
|
|
233
|
-
it("It should log telemetry feedback event", function() {
|
|
234
|
-
var context = {}
|
|
235
|
-
spyOn(telemetryObj, "feedback").and.callThrough();
|
|
236
|
-
telemetryObj.feedback(data, context);
|
|
237
|
-
expect(telemetryObj.feedback).toHaveBeenCalled();
|
|
238
|
-
});
|
|
239
|
-
it("It should take default feedback values", function() {
|
|
240
|
-
var context = {}
|
|
241
|
-
spyOn(telemetryObj, "feedback").and.callThrough();
|
|
242
|
-
telemetryObj.feedback({}, context);
|
|
243
|
-
expect(telemetryObj.feedback).toHaveBeenCalled();
|
|
244
|
-
});
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
describe("Telemetry SHARE", function() {
|
|
248
|
-
it("It should log telemetry share event", function() {
|
|
249
|
-
var context = {}
|
|
250
|
-
data = JSON.parse('{"items": [{"obj": {"id": "123","type": "Plugin","ver": "1.0"}}]}');
|
|
251
|
-
spyOn(telemetryObj, "share").and.callThrough();
|
|
252
|
-
telemetryObj.share(data, context);
|
|
253
|
-
expect(telemetryObj.share).toHaveBeenCalled();
|
|
254
|
-
});
|
|
255
|
-
it("It should return if the required data is unavailable", function() {
|
|
256
|
-
data = {};
|
|
257
|
-
spyOn(telemetryObj, "share").and.callThrough();
|
|
258
|
-
var telemetryResponse = telemetryObj.share(data);
|
|
259
|
-
expect(telemetryObj.share).toHaveBeenCalled();
|
|
260
|
-
expect(telemetryResponse).toBeUndefined();
|
|
261
|
-
});
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
describe("Telemetry AUDIT", function() {
|
|
265
|
-
it("It should log telemetry audit event", function() {
|
|
266
|
-
data = JSON.parse('{"props": ["123"],"state": "","prevstate": ""}');
|
|
267
|
-
spyOn(telemetryObj, "audit").and.callThrough();
|
|
268
|
-
telemetryObj.audit(data, {});
|
|
269
|
-
expect(telemetryObj.audit).toHaveBeenCalled();
|
|
270
|
-
});
|
|
271
|
-
it("It should return if the required data is unavailable", function() {
|
|
272
|
-
data = {};
|
|
273
|
-
spyOn(telemetryObj, "audit").and.callThrough();
|
|
274
|
-
var telemetryResponse = telemetryObj.audit(data);
|
|
275
|
-
expect(telemetryObj.audit).toHaveBeenCalled();
|
|
276
|
-
expect(telemetryResponse).toBeUndefined();
|
|
277
|
-
});
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
describe("Telemetry ERROR", function() {
|
|
281
|
-
it("It should log telemetry error event", function() {
|
|
282
|
-
data = JSON.parse('{"err": "500","errtype": "MOBILEAPP","stacktrace": "xy","pageid": "101","object": {"id": "_11","type": "PLUGIN","ver": "1.0"},"plugin": {"id": "_11","ver": "1.0"}}');
|
|
283
|
-
spyOn(telemetryObj, "error").and.callThrough();
|
|
284
|
-
telemetryObj.error(data, {});
|
|
285
|
-
expect(telemetryObj.error).toHaveBeenCalled();
|
|
286
|
-
});
|
|
287
|
-
it("It should return if the required data is unavailable", function() {
|
|
288
|
-
data = JSON.parse('{"err": "500","errtype": "MOBILEAPP","pageid": "101"}');
|
|
289
|
-
spyOn(telemetryObj, "error").and.callThrough();
|
|
290
|
-
var telemetryResponse = telemetryObj.error(data);
|
|
291
|
-
expect(telemetryObj.error).toHaveBeenCalled();
|
|
292
|
-
expect(telemetryResponse).toBeUndefined();
|
|
293
|
-
});
|
|
294
|
-
it("It should return if the object spec is invalid", function() {
|
|
295
|
-
data = JSON.parse('{"err": "500","errtype": "MOBILEAPP","pageid": "101","stacktrace": "xy","object": {"id": "_11","type": "PLUGIN"}}');
|
|
296
|
-
spyOn(telemetryObj, "error").and.callThrough();
|
|
297
|
-
var telemetryResponse = telemetryObj.error(data);
|
|
298
|
-
expect(telemetryObj.error).toHaveBeenCalled();
|
|
299
|
-
expect(telemetryResponse).toBeUndefined();
|
|
300
|
-
});
|
|
301
|
-
it("It should return if the plugin spec is invalid", function() {
|
|
302
|
-
data = JSON.parse('{"err": "500","errtype": "MOBILEAPP","pageid": "101","stacktrace": "xy","object": {"id": "_11","type": "PLUGIN","ver":"1.0"},"plugin": {"id": "_11"}}');
|
|
303
|
-
spyOn(telemetryObj, "error").and.callThrough();
|
|
304
|
-
var telemetryResponse = telemetryObj.error(data);
|
|
305
|
-
expect(telemetryObj.error).toHaveBeenCalled();
|
|
306
|
-
expect(telemetryResponse).toBeUndefined();
|
|
307
|
-
});
|
|
308
|
-
});
|
|
309
|
-
|
|
310
|
-
describe("Telemetry LOG", function() {
|
|
311
|
-
it("It should log telemetry log event", function() {
|
|
312
|
-
data = JSON.parse('{"type": "app_update","level": "ERROR","message": "Error occurred in updating app","pageid": "101"}');
|
|
313
|
-
spyOn(telemetryObj, "log").and.callThrough();
|
|
314
|
-
telemetryObj.log(data, {});
|
|
315
|
-
expect(telemetryObj.log).toHaveBeenCalled();
|
|
316
|
-
});
|
|
317
|
-
it("It should return if the required data is unavailable", function() {
|
|
318
|
-
data = JSON.parse('{"type": "app_update","level": "ERROR","pageid": "101"}');
|
|
319
|
-
spyOn(telemetryObj, "log").and.callThrough();
|
|
320
|
-
var telemetryResponse = telemetryObj.log(data);
|
|
321
|
-
expect(telemetryObj.log).toHaveBeenCalled();
|
|
322
|
-
expect(telemetryResponse).toBeUndefined();
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
describe("Telemetry HEARTBEAT", function() {
|
|
327
|
-
it("It should log telemetry heartbeat event", function() {
|
|
328
|
-
data = JSON.parse('{"type": "app_update","level": "ERROR","message": "Error occurred in updating app","pageid": "101"}');
|
|
329
|
-
spyOn(telemetryObj, "heartbeat").and.callThrough();
|
|
330
|
-
telemetryObj.heartbeat(data, {});
|
|
331
|
-
expect(telemetryObj.heartbeat).toHaveBeenCalled();
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
describe("Telemetry SEARCH", function() {
|
|
336
|
-
it("It should log telemetry search event", function() {
|
|
337
|
-
data = JSON.parse('{"query": "app_update","size": "333","topn": [{"h1":"H!"}]}');
|
|
338
|
-
spyOn(telemetryObj, "search").and.callThrough();
|
|
339
|
-
telemetryObj.search(data, {}, {});
|
|
340
|
-
expect(telemetryObj.search).toHaveBeenCalled();
|
|
341
|
-
});
|
|
342
|
-
it("It should return if the required data is unavailable", function() {
|
|
343
|
-
data = {};
|
|
344
|
-
spyOn(telemetryObj, "search").and.callThrough();
|
|
345
|
-
var telemetryResponse = telemetryObj.search(data);
|
|
346
|
-
expect(telemetryObj.search).toHaveBeenCalled();
|
|
347
|
-
expect(telemetryResponse).toBeUndefined();
|
|
348
|
-
});
|
|
349
|
-
});
|
|
350
|
-
|
|
351
|
-
describe("Telemetry METRICS", function() {
|
|
352
|
-
it("It should log telemetry metrics event", function() {
|
|
353
|
-
data = JSON.parse('{"metric1": "app_update","metric2": "333"}');
|
|
354
|
-
spyOn(telemetryObj, "metrics").and.callThrough();
|
|
355
|
-
telemetryObj.metrics(data, {});
|
|
356
|
-
expect(telemetryObj.metrics).toHaveBeenCalled();
|
|
357
|
-
});
|
|
358
|
-
});
|
|
359
|
-
|
|
360
|
-
describe("Telemetry SUMMARY", function() {
|
|
361
|
-
it("It should log telemetry metrics event", function() {
|
|
362
|
-
data = JSON.parse('{"type": "PLUGIN","starttime": "2897238927","endtime": "98278233328","timespent":"95380994401","pageviews": "5","interactions": "4"}');
|
|
363
|
-
spyOn(telemetryObj, "summary").and.callThrough();
|
|
364
|
-
telemetryObj.summary(data, {});
|
|
365
|
-
expect(telemetryObj.summary).toHaveBeenCalled();
|
|
366
|
-
});
|
|
367
|
-
it("It should return if the required data is unavailable", function() {
|
|
368
|
-
data = JSON.parse('{"type": "PLUGIN","starttime": "2897238927","endtime": "98278233328","timespent":"95380994401","pageviews": "5"}');
|
|
369
|
-
spyOn(telemetryObj, "summary").and.callThrough();
|
|
370
|
-
var telemetryResponse = telemetryObj.summary(data);
|
|
371
|
-
expect(telemetryObj.summary).toHaveBeenCalled();
|
|
372
|
-
expect(telemetryResponse).toBeUndefined();
|
|
373
|
-
});
|
|
374
|
-
});
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
describe("Telemetry EXDATA", function() {
|
|
378
|
-
it("It should log telemetry exdata event", function() {
|
|
379
|
-
var data = JSON.parse('{"type": "background","data": ""}');
|
|
380
|
-
spyOn(telemetryObj, "exdata").and.callThrough();
|
|
381
|
-
telemetryObj.exdata(data, {});
|
|
382
|
-
expect(telemetryObj.exdata).toHaveBeenCalled();
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
|
-
|
|
386
|
-
describe("Telemetry END", function() {
|
|
387
|
-
it("It should not generate Event if the requied data is unavailable", function() {
|
|
388
|
-
data = {};
|
|
389
|
-
spyOn(telemetryObj, "end").and.callThrough();
|
|
390
|
-
var telemetryEnd = telemetryObj.end(data);
|
|
391
|
-
expect(telemetryObj.end).toHaveBeenCalled();
|
|
392
|
-
expect(telemetryEnd).toEqual(undefined);
|
|
393
|
-
//expect(telemetryObj.initialized).toBeTruthy();
|
|
394
|
-
})
|
|
395
|
-
it("It should log telemetry END event", function() {
|
|
396
|
-
data = JSON.parse('{"type": "ECML","pageid": "123"}');
|
|
397
|
-
spyOn(telemetryObj, "end").and.callThrough();
|
|
398
|
-
telemetryObj.end(data, {});
|
|
399
|
-
expect(telemetryObj.end).toHaveBeenCalled();
|
|
400
|
-
})
|
|
401
|
-
it("It should not log telemetry END event if start is not happened", function() {
|
|
402
|
-
data = JSON.parse('{"type": "ECML","pageid": "123"}');
|
|
403
|
-
spyOn(telemetryObj, "end").and.callThrough();
|
|
404
|
-
telemetryObj.end(data);
|
|
405
|
-
expect(telemetryObj.end).toHaveBeenCalled();
|
|
406
|
-
})
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
describe('Util methods', function() {
|
|
410
|
-
it('It should return the status of initialization', function() {
|
|
411
|
-
data = JSON.parse('{ "type": "player" }');
|
|
412
|
-
var context = {};
|
|
413
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
414
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", data, context);
|
|
415
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
416
|
-
spyOn(telemetryObj, 'isInitialized').and.callThrough();
|
|
417
|
-
var isInitialized = telemetryObj.isInitialized();
|
|
418
|
-
expect(isInitialized).toBeTruthy();
|
|
419
|
-
});
|
|
420
|
-
|
|
421
|
-
it('It should reset the context', function() {
|
|
422
|
-
spyOn(telemetryObj, 'resetContext').and.callThrough();
|
|
423
|
-
telemetryObj.resetContext({ channel: 'in.ilimi' });
|
|
424
|
-
expect(telemetryObj.resetContext).toHaveBeenCalled();
|
|
425
|
-
// var currentContext = telemetryObj.getUpdatedValue('context');
|
|
426
|
-
// expect(currentContext).not.toBeUndefined();
|
|
427
|
-
// expect(currentContext.channel).toEqual('in.ilimi')
|
|
428
|
-
});
|
|
429
|
-
|
|
430
|
-
it('Should be empty, when undefined is passed to reset context', function() {
|
|
431
|
-
spyOn(telemetryObj, 'resetContext').and.callThrough();
|
|
432
|
-
telemetryObj.resetContext(undefined);
|
|
433
|
-
expect(telemetryObj.resetContext).toHaveBeenCalled();
|
|
434
|
-
// var currentContext = telemetryObj.getUpdatedValue('context');
|
|
435
|
-
// expect(currentContext).not.toBeUndefined();
|
|
436
|
-
});
|
|
437
|
-
|
|
438
|
-
it('It should reset the context', function() {
|
|
439
|
-
spyOn(telemetryObj, 'resetContext').and.callThrough();
|
|
440
|
-
telemetryObj.resetContext({ channel: 'in.ilimi' });
|
|
441
|
-
expect(telemetryObj.resetContext).toHaveBeenCalled();
|
|
442
|
-
// var currentContext = telemetryObj.getUpdatedValue('context');
|
|
443
|
-
// expect(currentContext).not.toBeUndefined();
|
|
444
|
-
// console.log("currentContext",currentContext)
|
|
445
|
-
// expect(currentContext.channel).toEqual('in.ilimi')
|
|
446
|
-
});
|
|
447
|
-
it("Should validate the has required data", function() {
|
|
448
|
-
spyOn(telemetryObj, "summary").and.callThrough();
|
|
449
|
-
telemetryObj.summary(undefined, {});
|
|
450
|
-
expect(telemetryObj.summary).toHaveBeenCalled();
|
|
451
|
-
});
|
|
452
|
-
|
|
453
|
-
it('It should reset the object', function() {
|
|
454
|
-
spyOn(telemetryObj, 'resetObject').and.callThrough();
|
|
455
|
-
telemetryObj.resetObject({ id: '123' });
|
|
456
|
-
expect(telemetryObj.resetObject).toHaveBeenCalled();
|
|
457
|
-
// var currentObject = telemetryObj.getUpdatedValue('object');
|
|
458
|
-
// expect(currentObject).not.toBeUndefined();
|
|
459
|
-
// expect(currentObject.id).toEqual('123')
|
|
460
|
-
});
|
|
461
|
-
|
|
462
|
-
it('Should validate the getContext', function() {
|
|
463
|
-
EkTelemetry.initialized = false;
|
|
464
|
-
data = JSON.parse('{"type": "app_update","level": "ERROR","message": "Error occurred in updating app","pageid": "101"}');
|
|
465
|
-
spyOn(telemetryObj, "heartbeat").and.callThrough();
|
|
466
|
-
EkTelemetry.config = {};
|
|
467
|
-
telemetryObj.heartbeat(data, {});
|
|
468
|
-
expect(telemetryObj.heartbeat).toHaveBeenCalled();
|
|
469
|
-
})
|
|
470
|
-
|
|
471
|
-
it('Should reset the actor', function() {
|
|
472
|
-
spyOn(telemetryObj, "resetActor").and.callThrough();
|
|
473
|
-
telemetryObj.resetActor({});
|
|
474
|
-
expect(telemetryObj.resetActor).toHaveBeenCalled();
|
|
475
|
-
})
|
|
476
|
-
|
|
477
|
-
it('Should reset the tags', function() {
|
|
478
|
-
spyOn(telemetryObj, "resetTags").and.callThrough();
|
|
479
|
-
telemetryObj.resetTags({});
|
|
480
|
-
expect(telemetryObj.resetTags).toHaveBeenCalled();
|
|
481
|
-
})
|
|
482
|
-
|
|
483
|
-
it('Should not throw an error when module is undefined', function() {
|
|
484
|
-
spyOn(telemetryObj, "resetTags").and.callThrough();
|
|
485
|
-
telemetryObj.resetTags({});
|
|
486
|
-
expect(telemetryObj.resetTags).toHaveBeenCalled();
|
|
487
|
-
})
|
|
488
|
-
|
|
489
|
-
it("It should generate the did if the did is undefined ", function() {
|
|
490
|
-
data = JSON.parse('{ "type": "player" }');
|
|
491
|
-
var options = {}
|
|
492
|
-
options.runningEnv = 'client';
|
|
493
|
-
spyOn(telemetryObj, "start").and.callThrough();
|
|
494
|
-
var telemetryElement = telemetryObj.start(config, "abc", "123", options);
|
|
495
|
-
// expect(telemetryElement).not.toBeUndefined();;
|
|
496
|
-
// expect(EkTelemetry.initialized).toBeTruthy();
|
|
497
|
-
expect(telemetryObj.start).toHaveBeenCalled();
|
|
498
|
-
})
|
|
499
|
-
|
|
500
|
-
})
|
|
501
|
-
|
|
502
|
-
describe('Invoke initialization', function() {
|
|
503
|
-
it('It should not invoke initialize, when invalid pdata', function() {
|
|
504
|
-
module = {}
|
|
505
|
-
})
|
|
506
|
-
it('It should not invoke initialize, when invalid object', function() {
|
|
507
|
-
EkTelemetry.initialized = false;
|
|
508
|
-
var config = {};
|
|
509
|
-
config.object = {};
|
|
510
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
511
|
-
telemetryObj.initialize(config);
|
|
512
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
513
|
-
})
|
|
514
|
-
it('It should invoke initialize, when invalid object', function() {
|
|
515
|
-
EkTelemetry.initialized = false;
|
|
516
|
-
var config = {};
|
|
517
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
518
|
-
telemetryObj.initialize(config);
|
|
519
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
520
|
-
})
|
|
521
|
-
it('It should not invoke initialize, when requiredData is not passed', function() {
|
|
522
|
-
EkTelemetry.initialized = false;
|
|
523
|
-
var config = {};
|
|
524
|
-
config.object = { type: 'player', id: "3758-6436" };
|
|
525
|
-
config.pdata = { id: "do_3432423" }
|
|
526
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
527
|
-
telemetryObj.initialize(config);
|
|
528
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
529
|
-
})
|
|
530
|
-
it('It should not initialize the telemetry if it is already initialized', function() {
|
|
531
|
-
EkTelemetry.initialized = true;
|
|
532
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
533
|
-
config.runningEnv = 'server'
|
|
534
|
-
telemetryObj.initialize(config);
|
|
535
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
536
|
-
})
|
|
537
|
-
it('It should set config to empty,', function() {
|
|
538
|
-
EkTelemetry.initialized = false;
|
|
539
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
540
|
-
telemetryObj.initialize(undefined);
|
|
541
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
542
|
-
})
|
|
543
|
-
|
|
544
|
-
it('It should not initialize when required pdata is not present,', function() {
|
|
545
|
-
EkTelemetry.initialized = false;
|
|
546
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
547
|
-
config.pdata = {}
|
|
548
|
-
telemetryObj.initialize(config);
|
|
549
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
550
|
-
})
|
|
551
|
-
|
|
552
|
-
it('It should default batchsize and ruuningEnv,', function() {
|
|
553
|
-
EkTelemetry.initialized = false;
|
|
554
|
-
spyOn(telemetryObj, 'initialize').and.callThrough();
|
|
555
|
-
module = 'undefined'
|
|
556
|
-
console.log("Module", module)
|
|
557
|
-
config.pdata = { "id": "in.ekstep", "ver": "1.0", "pid": "" }
|
|
558
|
-
config.runningEnv = 'client';
|
|
559
|
-
config.batchsize = 9;
|
|
560
|
-
config.uid = '343242';
|
|
561
|
-
config.did = '4335345435'
|
|
562
|
-
config.channel = 'in.ekstep.'
|
|
563
|
-
telemetryObj.initialize(config);
|
|
564
|
-
expect(telemetryObj.initialize).toHaveBeenCalled();
|
|
565
|
-
})
|
|
566
|
-
})
|
|
567
|
-
});
|