@availity/analytics-core 3.1.5 → 3.1.6
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/CHANGELOG.md +8 -0
- package/README.md +8 -2
- package/lib/analytics.js +6 -0
- package/lib/dma.js +2 -0
- package/package.json +27 -9
- package/types/analytics.d.ts +2 -0
- package/types/dma.d.ts +2 -0
- package/types/plugin.d.ts +1 -0
- package/types/splunk.d.ts +2 -0
- package/src/tests/analytics.test.js +0 -184
- package/src/tests/dma.test.js +0 -31
- package/src/tests/plugin.test.js +0 -22
- package/src/tests/splunk.test.js +0 -68
- package/src/tests/util.test.js +0 -52
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.1.6](https://github.com/availity/sdk-js/compare/@availity/analytics-core@3.1.5...@availity/analytics-core@3.1.6) (2021-12-21)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @availity/analytics-core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## 3.1.5 (2021-12-01)
|
|
7
15
|
|
|
8
16
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @availity/analytics-core
|
|
2
|
+
|
|
3
|
+
> analytics package for tracking user behavior on the dom
|
|
2
4
|
|
|
3
5
|
[](https://www.npmjs.com/package/@availity/analytics-core)
|
|
6
|
+
[](https://www.npmjs.com/package/@availity/analytics-core)
|
|
7
|
+
[](https://github.com/Availity/sdk-js/blob/master/packages/analytics-core/package.json)
|
|
4
8
|
|
|
5
9
|
## Install
|
|
6
10
|
|
|
@@ -16,4 +20,6 @@ npm install @availity/analytics-core
|
|
|
16
20
|
yarn add @availity/analytics-core
|
|
17
21
|
```
|
|
18
22
|
|
|
19
|
-
##
|
|
23
|
+
## Documentation
|
|
24
|
+
|
|
25
|
+
Check out more documentation at [availity.github.io](https://availity.github.io/sdk-js/resources/analytics)
|
package/lib/analytics.js
CHANGED
|
@@ -15,6 +15,12 @@ require("core-js/modules/es.object.keys.js");
|
|
|
15
15
|
|
|
16
16
|
require("core-js/modules/es.array.filter.js");
|
|
17
17
|
|
|
18
|
+
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
19
|
+
|
|
20
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
21
|
+
|
|
22
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
23
|
+
|
|
18
24
|
require("core-js/modules/es.function.name.js");
|
|
19
25
|
|
|
20
26
|
require("core-js/modules/es.array.slice.js");
|
package/lib/dma.js
CHANGED
|
@@ -10,6 +10,8 @@ require("core-js/modules/es.weak-map.js");
|
|
|
10
10
|
|
|
11
11
|
require("core-js/modules/esnext.weak-map.delete-all.js");
|
|
12
12
|
|
|
13
|
+
require("core-js/modules/esnext.weak-map.emplace.js");
|
|
14
|
+
|
|
13
15
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
14
16
|
|
|
15
17
|
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
package/package.json
CHANGED
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@availity/analytics-core",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.6",
|
|
4
4
|
"description": "Analytics base configuration for sdk-js",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"availity",
|
|
7
|
+
"analytics"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://availity.github.io/sdk-js/resources/analytics",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/availity/sdk-js/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/availity/sdk-js.git",
|
|
16
|
+
"directory": "packages/analytics-core"
|
|
17
|
+
},
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"author": "Kasey Powers <kasey.powers@availity.com>",
|
|
5
20
|
"main": "lib/index.js",
|
|
6
21
|
"module": "src/index.js",
|
|
7
22
|
"types": "types/index.d.ts",
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "yarn clean && yarn transpile",
|
|
25
|
+
"clean": "rimraf ./lib",
|
|
26
|
+
"transpile": "babel --root-mode upward src -d lib --ignore **/*.test.js"
|
|
12
27
|
},
|
|
13
|
-
"gitHead": "9e866c001205ac3765a3385ac8ed4a8b66962372",
|
|
14
28
|
"dependencies": {
|
|
15
|
-
"@babel/runtime": "^7.
|
|
29
|
+
"@babel/runtime": "^7.16.5",
|
|
16
30
|
"core-js": "^3.12.1",
|
|
17
31
|
"yup": "^0.32.9"
|
|
18
32
|
},
|
|
19
33
|
"devDependencies": {
|
|
20
|
-
"@availity/api-axios": "^6.0.
|
|
21
|
-
}
|
|
34
|
+
"@availity/api-axios": "^6.0.6"
|
|
35
|
+
},
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
},
|
|
39
|
+
"gitHead": "1c3e8c8045b16fc5111f941d863600f0a97cdbff"
|
|
22
40
|
}
|
package/types/analytics.d.ts
CHANGED
package/types/dma.d.ts
CHANGED
package/types/plugin.d.ts
CHANGED
package/types/splunk.d.ts
CHANGED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { AvAnalytics } from '..';
|
|
2
|
-
|
|
3
|
-
function makePlugin() {
|
|
4
|
-
return {
|
|
5
|
-
isEnabled: jest.fn(() => true),
|
|
6
|
-
init: jest.fn(),
|
|
7
|
-
trackEvent: jest.fn(),
|
|
8
|
-
trackPageView: jest.fn(),
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
describe('AvAnalytics', () => {
|
|
13
|
-
let mockAvAnalytics;
|
|
14
|
-
|
|
15
|
-
test('AvAnalytics should be defined', () => {
|
|
16
|
-
const plugins = [makePlugin()];
|
|
17
|
-
mockAvAnalytics = new AvAnalytics(plugins, Promise, true);
|
|
18
|
-
expect(mockAvAnalytics).toBeDefined();
|
|
19
|
-
mockAvAnalytics = new AvAnalytics(plugins, Promise);
|
|
20
|
-
expect(mockAvAnalytics).toBeDefined();
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test('AvAnalytics should throw error without plugins or Promise', () => {
|
|
24
|
-
expect(() => {
|
|
25
|
-
mockAvAnalytics = new AvAnalytics();
|
|
26
|
-
}).toThrow('[plugins] and [promise] must be defined');
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test('AvAnalytics should cast plugins to an array', () => {
|
|
30
|
-
const plugin = makePlugin();
|
|
31
|
-
mockAvAnalytics = new AvAnalytics(plugin, Promise);
|
|
32
|
-
expect(mockAvAnalytics.plugins).toEqual([plugin]);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test('AvAnalytics should use custom configs', () => {
|
|
36
|
-
mockAvAnalytics = new AvAnalytics([], Promise, true, true, {
|
|
37
|
-
attributePrefix: 'some-attr',
|
|
38
|
-
recursive: true,
|
|
39
|
-
});
|
|
40
|
-
expect(mockAvAnalytics.attributePrefix).toBe('some-attr');
|
|
41
|
-
expect(mockAvAnalytics.recursive).toBe(true);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
describe('setPageTracking', () => {
|
|
45
|
-
beforeEach(() => {
|
|
46
|
-
const plugins = [makePlugin()];
|
|
47
|
-
mockAvAnalytics = new AvAnalytics(plugins, Promise);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
test('passing in argument should change value of pageTracking', () => {
|
|
51
|
-
const initialTracking = true;
|
|
52
|
-
const setPageTracking = !initialTracking;
|
|
53
|
-
|
|
54
|
-
mockAvAnalytics.pageTracking = initialTracking;
|
|
55
|
-
|
|
56
|
-
mockAvAnalytics.setPageTracking(setPageTracking);
|
|
57
|
-
expect(mockAvAnalytics.pageTracking).toBe(setPageTracking);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
test('isPageTracking will not change without start/stop pageTracking functions defined', () => {
|
|
61
|
-
mockAvAnalytics.startPageTracking = undefined;
|
|
62
|
-
mockAvAnalytics.setPageTracking(true);
|
|
63
|
-
expect(mockAvAnalytics.isPageTracking).toBe(false);
|
|
64
|
-
mockAvAnalytics.setPageTracking(false);
|
|
65
|
-
expect(mockAvAnalytics.isPageTracking).toBe(false);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
test('with functions defined, will only call if pageTracking is opposite isPageTracking', () => {
|
|
69
|
-
mockAvAnalytics.startPageTracking = jest.fn();
|
|
70
|
-
mockAvAnalytics.stopPageTracking = jest.fn();
|
|
71
|
-
|
|
72
|
-
let testValue = true;
|
|
73
|
-
mockAvAnalytics.pageTracking = testValue;
|
|
74
|
-
mockAvAnalytics.isPageTracking = testValue;
|
|
75
|
-
mockAvAnalytics.setPageTracking();
|
|
76
|
-
expect(mockAvAnalytics.startPageTracking).not.toHaveBeenCalled();
|
|
77
|
-
expect(mockAvAnalytics.stopPageTracking).not.toHaveBeenCalled();
|
|
78
|
-
|
|
79
|
-
testValue = false;
|
|
80
|
-
mockAvAnalytics.pageTracking = testValue;
|
|
81
|
-
mockAvAnalytics.isPageTracking = testValue;
|
|
82
|
-
mockAvAnalytics.setPageTracking();
|
|
83
|
-
expect(mockAvAnalytics.startPageTracking).not.toHaveBeenCalled();
|
|
84
|
-
expect(mockAvAnalytics.stopPageTracking).not.toHaveBeenCalled();
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
test('with functions defined, will start/stop tracking based on pageTracking value', () => {
|
|
88
|
-
mockAvAnalytics.startPageTracking = jest.fn();
|
|
89
|
-
mockAvAnalytics.stopPageTracking = jest.fn();
|
|
90
|
-
|
|
91
|
-
let testValue = true;
|
|
92
|
-
mockAvAnalytics.pageTracking = testValue;
|
|
93
|
-
mockAvAnalytics.isPageTracking = !testValue;
|
|
94
|
-
|
|
95
|
-
mockAvAnalytics.setPageTracking();
|
|
96
|
-
expect(mockAvAnalytics.startPageTracking).toHaveBeenCalledTimes(1);
|
|
97
|
-
expect(mockAvAnalytics.stopPageTracking).toHaveBeenCalledTimes(0);
|
|
98
|
-
expect(mockAvAnalytics.isPageTracking).toBe(testValue);
|
|
99
|
-
|
|
100
|
-
testValue = false;
|
|
101
|
-
mockAvAnalytics.pageTracking = testValue;
|
|
102
|
-
mockAvAnalytics.isPageTracking = !testValue;
|
|
103
|
-
|
|
104
|
-
mockAvAnalytics.setPageTracking();
|
|
105
|
-
expect(mockAvAnalytics.startPageTracking).toHaveBeenCalledTimes(1);
|
|
106
|
-
expect(mockAvAnalytics.stopPageTracking).toHaveBeenCalledTimes(1);
|
|
107
|
-
expect(mockAvAnalytics.isPageTracking).toBe(testValue);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
describe('init', () => {
|
|
112
|
-
let plugins;
|
|
113
|
-
beforeEach(() => {
|
|
114
|
-
plugins = [makePlugin(), makePlugin()];
|
|
115
|
-
mockAvAnalytics = new AvAnalytics(plugins, Promise);
|
|
116
|
-
mockAvAnalytics.setPageTracking = jest.fn();
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
test('should call setPageTracking', () => {
|
|
120
|
-
mockAvAnalytics.init();
|
|
121
|
-
expect(mockAvAnalytics.setPageTracking).toHaveBeenCalled();
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
test('should check each plugin is enabled', () => {
|
|
125
|
-
mockAvAnalytics.init();
|
|
126
|
-
for (const plugin of plugins) {
|
|
127
|
-
expect(plugin.isEnabled).toHaveBeenCalled();
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
test('should call init on enabled plugins', () => {
|
|
132
|
-
mockAvAnalytics.init();
|
|
133
|
-
for (const plugin of plugins) {
|
|
134
|
-
expect(plugin.init).toHaveBeenCalledTimes(1);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
plugins[0].isEnabled.mockImplementationOnce(() => false);
|
|
138
|
-
mockAvAnalytics.init();
|
|
139
|
-
expect(plugins[0].init).toHaveBeenCalledTimes(1);
|
|
140
|
-
expect(plugins[1].init).toHaveBeenCalledTimes(2);
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
test('should skip plugins without init function', () => {
|
|
144
|
-
plugins[1].init = 'test';
|
|
145
|
-
mockAvAnalytics.init();
|
|
146
|
-
expect(plugins[0].init).toHaveBeenCalled();
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
describe('event tracking', () => {
|
|
151
|
-
let plugins;
|
|
152
|
-
beforeEach(() => {
|
|
153
|
-
plugins = [makePlugin(), makePlugin(), makePlugin()];
|
|
154
|
-
|
|
155
|
-
mockAvAnalytics = new AvAnalytics(plugins, Promise);
|
|
156
|
-
|
|
157
|
-
plugins[0].isEnabled.mockImplementation(() => false);
|
|
158
|
-
plugins[1].trackEvent = 'test';
|
|
159
|
-
plugins[2].trackPageView = 'test';
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
test('trackEvent should call trackEvent on enabled plugins with properties', async () => {
|
|
163
|
-
const mockProperties = {};
|
|
164
|
-
await mockAvAnalytics.trackEvent(mockProperties);
|
|
165
|
-
expect(plugins[0].trackEvent).not.toHaveBeenCalled();
|
|
166
|
-
expect(plugins[2].trackEvent).toHaveBeenCalledWith(mockProperties);
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
test('trackEvent should call trackEvent on enabled plugins with url', async () => {
|
|
170
|
-
const mockProperties = {};
|
|
171
|
-
await mockAvAnalytics.trackEvent(mockProperties);
|
|
172
|
-
expect(plugins[0].trackEvent).not.toHaveBeenCalled();
|
|
173
|
-
expect(mockProperties.url).toBeDefined();
|
|
174
|
-
expect(plugins[2].trackEvent).toHaveBeenCalledWith(mockProperties);
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
test('trackPageView should call trackPageView on enabled plugins with properties', async () => {
|
|
178
|
-
const mockUrl = 'testProperties';
|
|
179
|
-
await mockAvAnalytics.trackPageView(mockUrl);
|
|
180
|
-
expect(plugins[0].trackPageView).not.toHaveBeenCalled();
|
|
181
|
-
expect(plugins[1].trackPageView).toHaveBeenCalledWith(mockUrl);
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
});
|
package/src/tests/dma.test.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { avLogMessagesApiV2 } from '@availity/api-axios';
|
|
2
|
-
import { AvDmaAnalytics } from '..';
|
|
3
|
-
|
|
4
|
-
jest.mock('@availity/api-axios');
|
|
5
|
-
|
|
6
|
-
describe('AvSplunkAnalytics', () => {
|
|
7
|
-
let mockAvSplunkAnalytics;
|
|
8
|
-
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
avLogMessagesApiV2.sendBeacon = jest.fn();
|
|
11
|
-
// avLogMessagesApiV2.info = jest.fn;
|
|
12
|
-
mockAvSplunkAnalytics = new AvDmaAnalytics(avLogMessagesApiV2);
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test('AvSplunkAnalytics should be defined', () => {
|
|
16
|
-
expect(mockAvSplunkAnalytics).toBeDefined();
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test('trackEvent should call AvLogMessages.send', () => {
|
|
20
|
-
const level = 'info';
|
|
21
|
-
mockAvSplunkAnalytics.trackEvent({ level, label: 'test' });
|
|
22
|
-
expect(avLogMessagesApiV2.info).toHaveBeenCalledTimes(1);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test('trackEvent should not allow unknown keys', () => {
|
|
26
|
-
const level = 'info';
|
|
27
|
-
expect(() => {
|
|
28
|
-
mockAvSplunkAnalytics.trackEvent({ level, test: 'test' });
|
|
29
|
-
}).toThrow();
|
|
30
|
-
});
|
|
31
|
-
});
|
package/src/tests/plugin.test.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { AvAnalyticsPlugin } from '..';
|
|
2
|
-
|
|
3
|
-
describe('AvAnalyticsPlugin', () => {
|
|
4
|
-
let mockPlugin;
|
|
5
|
-
|
|
6
|
-
test('AvAnalyticsPlugin should be defined', () => {
|
|
7
|
-
mockPlugin = new AvAnalyticsPlugin();
|
|
8
|
-
expect(mockPlugin).toBeDefined();
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
test('should default enabled to true', () => {
|
|
12
|
-
mockPlugin = new AvAnalyticsPlugin();
|
|
13
|
-
expect(mockPlugin.enabled).toBe(true);
|
|
14
|
-
mockPlugin = new AvAnalyticsPlugin(false);
|
|
15
|
-
expect(mockPlugin.enabled).toBe(false);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
test('isEnabled should return enabled value', () => {
|
|
19
|
-
mockPlugin = new AvAnalyticsPlugin();
|
|
20
|
-
expect(mockPlugin.isEnabled()).toBe(mockPlugin.enabled);
|
|
21
|
-
});
|
|
22
|
-
});
|
package/src/tests/splunk.test.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { AvSplunkAnalytics } from '..';
|
|
2
|
-
|
|
3
|
-
describe('AvSplunkAnalytics', () => {
|
|
4
|
-
let mockLog;
|
|
5
|
-
let mockAvSplunkAnalytics;
|
|
6
|
-
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
mockLog = {
|
|
9
|
-
info: jest.fn(),
|
|
10
|
-
test: jest.fn(),
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
mockAvSplunkAnalytics = new AvSplunkAnalytics(mockLog);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
test('AvSplunkAnalytics should be defined', () => {
|
|
17
|
-
expect(mockAvSplunkAnalytics).toBeDefined();
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test('trackEvent should call AvLogMessages[level]', () => {
|
|
21
|
-
let level = 'info';
|
|
22
|
-
mockAvSplunkAnalytics.trackEvent({ level });
|
|
23
|
-
expect(mockLog.info).toHaveBeenCalledTimes(1);
|
|
24
|
-
expect(mockLog.test).toHaveBeenCalledTimes(0);
|
|
25
|
-
level = 'test';
|
|
26
|
-
mockAvSplunkAnalytics.trackEvent({ level });
|
|
27
|
-
expect(mockLog.info).toHaveBeenCalledTimes(1);
|
|
28
|
-
expect(mockLog.test).toHaveBeenCalledTimes(1);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("trackEvent should default level to 'info'", () => {
|
|
32
|
-
mockAvSplunkAnalytics.trackEvent({});
|
|
33
|
-
expect(mockLog.info).toHaveBeenCalledTimes(1);
|
|
34
|
-
expect(mockLog.test).toHaveBeenCalledTimes(0);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test("trackEvent should default properties.url to location.href or 'N/A'", () => {
|
|
38
|
-
let startingObject = {
|
|
39
|
-
message: 'hello world',
|
|
40
|
-
url: window.location.href || 'N/A',
|
|
41
|
-
};
|
|
42
|
-
const expectedCall = {
|
|
43
|
-
...startingObject,
|
|
44
|
-
url: window.location.href || 'N/A',
|
|
45
|
-
level: 'info',
|
|
46
|
-
};
|
|
47
|
-
mockAvSplunkAnalytics.trackEvent(startingObject);
|
|
48
|
-
expect(mockLog.info).toHaveBeenCalledWith(expectedCall);
|
|
49
|
-
|
|
50
|
-
startingObject = {
|
|
51
|
-
message: 'hello world',
|
|
52
|
-
url: 'testUrl',
|
|
53
|
-
level: 'test',
|
|
54
|
-
};
|
|
55
|
-
mockAvSplunkAnalytics.trackEvent(startingObject);
|
|
56
|
-
expect(mockLog.test).toHaveBeenCalledWith(startingObject);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
test("trackPageView should call trackEvent with event 'page' and passed in url", () => {
|
|
60
|
-
const testUrl = 'testUrl';
|
|
61
|
-
mockAvSplunkAnalytics.trackEvent = jest.fn();
|
|
62
|
-
mockAvSplunkAnalytics.trackPageView(testUrl);
|
|
63
|
-
expect(mockAvSplunkAnalytics.trackEvent).toHaveBeenCalledWith({
|
|
64
|
-
event: 'page',
|
|
65
|
-
url: testUrl,
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
});
|
package/src/tests/util.test.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
camelCase,
|
|
3
|
-
getComposedPath,
|
|
4
|
-
isLeftClickEvent,
|
|
5
|
-
isModifiedEvent,
|
|
6
|
-
isPluginEnabled,
|
|
7
|
-
isValidEventTypeOnTarget,
|
|
8
|
-
} from '../util';
|
|
9
|
-
|
|
10
|
-
describe('analytics-core utils', () => {
|
|
11
|
-
test('isLeftClickEvent', () => {
|
|
12
|
-
expect(isLeftClickEvent({ button: 0 })).toBeTruthy();
|
|
13
|
-
expect(isLeftClickEvent({ button: 1 })).toBeFalsy();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
test('isModifiedEvent', () => {
|
|
17
|
-
expect(isModifiedEvent({ metaKey: 1 })).toBeTruthy();
|
|
18
|
-
expect(isModifiedEvent({ altKey: 1 })).toBeTruthy();
|
|
19
|
-
expect(isModifiedEvent({ ctrlKey: 1 })).toBeTruthy();
|
|
20
|
-
expect(isModifiedEvent({ shiftKey: 1 })).toBeTruthy();
|
|
21
|
-
expect(isModifiedEvent({ key: 1 })).toBeFalsy();
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
test('isValidEventTypeOnTarget', () => {
|
|
25
|
-
expect(isValidEventTypeOnTarget({ target: { nodeName: 'click' }, type: 'click' })).toBeTruthy();
|
|
26
|
-
expect(isValidEventTypeOnTarget({ target: { nodeName: 'select' }, type: 'click' })).toBeFalsy();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test('isPluginEnabled', () => {
|
|
30
|
-
expect(isPluginEnabled({ isEnabled: () => true })).toBeTruthy();
|
|
31
|
-
expect(isPluginEnabled({ isEnabled: () => false })).toBeFalsy();
|
|
32
|
-
expect(isPluginEnabled({ isEnabled: true })).toBeTruthy();
|
|
33
|
-
expect(isPluginEnabled({ isEnabled: false })).toBeFalsy();
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test('camelCase', () => {
|
|
37
|
-
expect(camelCase('foo')).toBe('foo');
|
|
38
|
-
expect(camelCase('foo-bar')).toBe('fooBar');
|
|
39
|
-
expect(camelCase('foo-bar-baz')).toBe('fooBarBaz');
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
test('getComposedPath', () => {
|
|
43
|
-
expect(getComposedPath({}).length).toBe(1);
|
|
44
|
-
expect(getComposedPath({ parentNode: {} }).length).toBe(2);
|
|
45
|
-
expect(getComposedPath({ host: {} }).length).toBe(2);
|
|
46
|
-
expect(getComposedPath({ defaultView: {} }).length).toBe(2);
|
|
47
|
-
|
|
48
|
-
const result = '[{"parentNode":{"host":{"defaultView":{}}}},{"host":{"defaultView":{}}},{"defaultView":{}},{}]';
|
|
49
|
-
const nested = getComposedPath({ parentNode: { host: { defaultView: {} } } });
|
|
50
|
-
expect(JSON.stringify(nested)).toEqual(result);
|
|
51
|
-
});
|
|
52
|
-
});
|