@esri/telemetry-amazon 6.0.0-beta.0 → 6.0.0-beta.2

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.
Files changed (41) hide show
  1. package/README.md +24 -7
  2. package/dist/esm/create-page-view-log.js +1 -1
  3. package/dist/esm/create-page-view-log.js.map +1 -1
  4. package/dist/esm/index.js +28 -20
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/esm/index.test.js +53 -167
  7. package/dist/esm/index.test.js.map +1 -1
  8. package/dist/esm/plugins/esri.js +185 -0
  9. package/dist/esm/plugins/esri.js.map +1 -0
  10. package/dist/esm/plugins/esri.test.js +161 -0
  11. package/dist/esm/plugins/esri.test.js.map +1 -0
  12. package/dist/esm/plugins/pinpoint.js +163 -0
  13. package/dist/esm/plugins/pinpoint.js.map +1 -0
  14. package/dist/esm/plugins/shared.js +74 -0
  15. package/dist/esm/plugins/shared.js.map +1 -0
  16. package/dist/node/create-page-view-log.js +1 -1
  17. package/dist/node/create-page-view-log.js.map +1 -1
  18. package/dist/node/index.js +28 -21
  19. package/dist/node/index.js.map +1 -1
  20. package/dist/node/index.test.js +53 -168
  21. package/dist/node/index.test.js.map +1 -1
  22. package/dist/node/plugins/esri.js +189 -0
  23. package/dist/node/plugins/esri.js.map +1 -0
  24. package/dist/node/plugins/esri.test.js +163 -0
  25. package/dist/node/plugins/esri.test.js.map +1 -0
  26. package/dist/node/plugins/pinpoint.js +167 -0
  27. package/dist/node/plugins/pinpoint.js.map +1 -0
  28. package/dist/node/plugins/shared.js +82 -0
  29. package/dist/node/plugins/shared.js.map +1 -0
  30. package/dist/types/create-page-view-log.d.ts +1 -1
  31. package/dist/types/index.d.ts +10 -7
  32. package/dist/types/plugins/esri.d.ts +11 -0
  33. package/dist/types/plugins/esri.test.d.ts +1 -0
  34. package/dist/types/plugins/pinpoint.d.ts +11 -0
  35. package/dist/types/plugins/shared.d.ts +11 -0
  36. package/dist/types/types.d.ts +17 -10
  37. package/dist/umd/telemetry-amazon.js +811 -201
  38. package/dist/umd/telemetry-amazon.js.map +1 -1
  39. package/dist/umd/telemetry-amazon.min.js +811 -201
  40. package/dist/umd/telemetry-amazon.min.js.map +1 -1
  41. package/package.json +2 -3
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `@esri/telemetry-amazon`
2
2
 
3
- > This is a plugin for the `Telemetry.js` package to interact with an AWS Analytics store. This package uses the third-party libraries, [analytics](https://github.com/DavidWells/analytics) and [@analytics/aws-pinpoint](https://github.com/DavidWells/analytics/tree/master/packages/analytics-plugin-aws-pinpoint) packages.
3
+ > This is a plugin for the `Telemetry.js` package to interact with an AWS Analytics store.
4
4
 
5
5
  ## Table of Contents
6
6
 
@@ -9,10 +9,11 @@
9
9
  - [How to Use](#how-to-use)
10
10
  - [Amazon Configuration](#amazon-configuration)
11
11
  - [Example](#example)
12
- - [`telemetry.logEvent(event)`](#telemetrylogeventevent)
12
+ - [`telemetry.logEvent(event)`](#telemetrylogeventevent)
13
13
  - [Telemetry Sharing Permissions](#telemetry-sharing-permissions)
14
14
  - [Portal Items](#portal-items)
15
15
  - [Usage](#usage)
16
+ - [Amazon Pinpoint Retirement](#amazon-pinpoint-retirement)
16
17
  - [Issues](#issues)
17
18
  - [Contributing](#contributing)
18
19
  - [License](#license)
@@ -24,7 +25,7 @@ npm install @esri/telemetry-amazon
24
25
 
25
26
  ## How to Use
26
27
 
27
- `@esri/telemetry-amazon` packages works in the client-side browser and server-side Node.js. To use, install the package, include it in your project, create an instance of the plugin, and add it to the `plugins` array with [@esri/telemetry](../../README.md)
28
+ `@esri/telemetry-amazon` package works in the client-side browser and server-side Node.js. To use it, install the package, include it in your project, create an instance of the Amazon plugin, and add it to the `plugins` array with [@esri/telemetry](../../README.md).
28
29
 
29
30
  Below is an example of how to use the telemetry-amazon plugin.
30
31
 
@@ -34,6 +35,7 @@ import { Amazon } from '@esri/telemetry-amazon';
34
35
 
35
36
  const amazonTracker = new Amazon({
36
37
  userPoolID: USER_POOL_ID,
38
+ mode: 'pinpoint', // Pinpoint retires on October 30, 2026. Use 'esri' for continued support.
37
39
  fips: true, // defaults to false
38
40
  app: {
39
41
  name: APP_NAME,
@@ -57,18 +59,18 @@ telemetry.logPageView();
57
59
  telemetry.logEvent();
58
60
  ```
59
61
 
60
- After initializing `Telemetry.js` with the `telemetry-amazon` plugin, telemetry data will be sent to the AWS Pinpoint instance of the provided App.
62
+ After initializing `Telemetry.js` with the Amazon plugin, telemetry data will be sent to the configured destination.
61
63
 
62
64
  ## Amazon Configuration
63
65
 
64
66
  - Get your app and user pool ID from AWS Pinpoint instance
65
- - Pass in options object to create an instance of the plugin
67
+ - Pass in an options object to create an instance of the Amazon plugin
66
68
  - the `fips` option determines if AWS FIPS endpoints are used for cognito and pinpoint requests
67
69
  - Pass in an object containing the mapping for your custom dimensions and metrics
68
70
 
69
71
  ```js
70
72
  // or if you are using optional custom dimensions and/or custom metrics
71
- const googleTracker = new Amazon({
73
+ const amazonTracker = new Amazon({
72
74
  dimensions: {
73
75
  datasetID: 1,
74
76
  attribute: 2,
@@ -167,6 +169,21 @@ const setAccessParams = {
167
169
  const result = await Amazon.setAccessPermissions(setAccessParams: ISetAccessPermissionsParams)
168
170
  ```
169
171
 
172
+ ## Amazon Pinpoint Retirement
173
+
174
+ Amazon Pinpoint will be retired on **October 30, 2026**. After this date, Pinpoint can no longer be used for telemetry delivery. See the [official AWS retirement announcement](https://docs.aws.amazon.com/pinpoint/latest/userguide/migrate.html) for details.
175
+
176
+ To keep telemetry working, use `mode: 'esri'`. Esri mode sends events through Esri's backend instead of Pinpoint while keeping the same tracker identity.
177
+
178
+ **Note:** The current default is still Pinpoint mode. For continued support, set `mode: 'esri'` in your tracker configuration:
179
+
180
+ ```js
181
+ const amazonTracker = new Amazon({
182
+ mode: 'esri',
183
+ ....
184
+ });
185
+ ```
186
+
170
187
  ## Issues
171
188
 
172
189
  If something isn't working, please take a look at [previously logged issues](https://devtopia.esri.com/WebGIS/arcgis-telemetry.js/issues) first. Have you found a new bug? Create an issue [here](https://devtopia.esri.com/WebGIS/arcgis-telemetry.js/issues/new).
@@ -177,7 +194,7 @@ Esri welcomes contributions from anyone and everyone. Please see our [guidelines
177
194
 
178
195
  ## License
179
196
 
180
- Copyright © 2022 Esri
197
+ Copyright © 2026 Esri
181
198
 
182
199
  Licensed under the Apache License, Version 2.0 (the "License");
183
200
  you may not use this file except in compliance with the License.
@@ -14,6 +14,6 @@ export function createPageViewLog({ page, previousPage = {}, options = {}, dimen
14
14
  const { referrer, title } = document || {};
15
15
  const { hostname, pathname } = window && window.location ? window.location : {};
16
16
  return Object.assign(Object.assign({ name: 'pageView', referrer,
17
- hostname, path: page || pathname, pageUrl: page || pathname, pageName: title, previousPageUrl: previousPage.pageUrl, previousPageName: previousPage.pageName }, attributes), metrics);
17
+ hostname, path: page || pathname, pageUrl: page || pathname, pageName: title, previousPageUrl: previousPage === null || previousPage === void 0 ? void 0 : previousPage.pageUrl, previousPageName: previousPage === null || previousPage === void 0 ? void 0 : previousPage.pageName }, attributes), metrics);
18
18
  }
19
19
  //# sourceMappingURL=create-page-view-log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-page-view-log.js","sourceRoot":"","sources":["../../src/create-page-view-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,EAAE,EACZ,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,EAAE,GAOlB;IACC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,yBAAyB,CAAC;QAC3C,aAAa,EAAE,OAAO;QACtB,eAAe;QACf,WAAW,EAAE;YACX,UAAU;YACV,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SAC7B;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAC1B,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAU,CAAC;IAE5D,qCACE,IAAI,EAAE,UAAU,EAChB,QAAQ;QACR,QAAQ,EACR,IAAI,EAAE,IAAI,IAAI,QAAQ,EACtB,OAAO,EAAE,IAAI,IAAI,QAAQ,EACzB,QAAQ,EAAE,KAAK,EACf,eAAe,EAAE,YAAY,CAAC,OAAO,EACrC,gBAAgB,EAAE,YAAY,CAAC,QAAQ,IACpC,UAAU,GACV,OAAO,EACV;AACJ,CAAC"}
1
+ {"version":3,"file":"create-page-view-log.js","sourceRoot":"","sources":["../../src/create-page-view-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,EAAE,EACZ,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,EAAE,GAOlB;IACC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,yBAAyB,CAAC;QAC3C,aAAa,EAAE,OAAO;QACtB,eAAe;QACf,WAAW,EAAE;YACX,UAAU;YACV,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SAC7B;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAC1B,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAU,CAAC;IAE5D,qCACE,IAAI,EAAE,UAAU,EAChB,QAAQ;QACR,QAAQ,EACR,IAAI,EAAE,IAAI,IAAI,QAAQ,EACtB,OAAO,EAAE,IAAI,IAAI,QAAQ,EACzB,QAAQ,EAAE,KAAK,EACf,eAAe,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,EACtC,gBAAgB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,IACrC,UAAU,GACV,OAAO,EACV;AACJ,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,32 +1,40 @@
1
- import { getCredentials } from './auth';
2
1
  import { createEventLog } from './create-event-log';
3
2
  import { createPageViewLog } from './create-page-view-log';
4
- import Analytics from 'analytics';
5
- import awsPinpointPlugin from '@analytics/aws-pinpoint';
6
3
  import { setPortalItemAccessPermissions } from './set-portal-item-access-permissions';
7
4
  import { getPortalItemAccessPermissions } from './get-portal-item-access-permissions';
5
+ import { createPinpointPlugin } from './plugins/pinpoint';
6
+ import { createEsriPlugin } from './plugins/esri';
8
7
  /**
9
8
  * Amazon Telemetry
10
- * Supports Amazon Pinpoint
9
+ * Supports Pinpoint and Esri endpoint modes
11
10
  */
12
11
  export class Amazon {
13
12
  constructor(options) {
14
13
  this.name = 'amazon';
14
+ this.previousPage = {};
15
15
  this.isInitialized = false;
16
- const { app = {}, fips, userPoolID } = options;
17
- this.analytics = Analytics({
18
- app: app.name,
19
- version: app.version,
20
- plugins: [
21
- awsPinpointPlugin({
22
- fips,
23
- pinpointAppId: app.id,
24
- getCredentials: () => {
25
- return getCredentials(userPoolID, { fips });
26
- },
27
- }),
28
- ],
29
- });
16
+ // default to `esri` mode if not specified
17
+ const { app = {}, fips, userPoolID, mode = 'esri' } = options;
18
+ this.mode = mode;
19
+ if (this.mode === 'pinpoint') {
20
+ this.analytics = createPinpointPlugin({
21
+ appName: app.name,
22
+ appVersion: app.version,
23
+ appId: app.id,
24
+ userPoolID,
25
+ fips,
26
+ });
27
+ }
28
+ else {
29
+ this.analytics = createEsriPlugin({
30
+ trackerName: this.name,
31
+ appName: app.name,
32
+ appVersion: app.version,
33
+ appId: app.id,
34
+ userPoolID,
35
+ fips,
36
+ });
37
+ }
30
38
  Object.assign(this, options);
31
39
  }
32
40
  init() {
@@ -58,7 +66,7 @@ export class Amazon {
58
66
  });
59
67
  const { pageUrl, pageName } = telemetryPayload;
60
68
  this.previousPage = { pageUrl, pageName };
61
- this.analytics.track('pageView', telemetryPayload);
69
+ return this.analytics.track('pageView', telemetryPayload);
62
70
  }
63
71
  logEvent(event = {}) {
64
72
  const telemetryPayload = createEventLog({
@@ -67,7 +75,7 @@ export class Amazon {
67
75
  metricLookup: this.metrics,
68
76
  });
69
77
  const { name } = telemetryPayload;
70
- this.analytics.track(name, telemetryPayload);
78
+ return this.analytics.track(name, telemetryPayload);
71
79
  }
72
80
  }
73
81
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,SAAgC,MAAM,WAAW,CAAC;AACzD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAYxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF;;;GAGG;AACH,MAAM,OAAO,MAAM;IASjB,YAAY,OAA+B;QAP3C,SAAI,GAAW,QAAQ,CAAC;QAKxB,kBAAa,GAAG,KAAK,CAAC;QAGpB,MAAM,EAAE,GAAG,GAAG,EAAe,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YACzB,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE;gBACP,iBAAiB,CAAC;oBAChB,IAAI;oBACJ,aAAa,EAAE,GAAG,CAAC,EAAE;oBACrB,cAAc,EAAE,GAAG,EAAE;wBACnB,OAAO,cAAc,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,CAAC;iBACF,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,iCAAiC;QACjC,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO;SAAE;QAEnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAChC,EAAE,EACF,cAAc,EACd,QAAQ,EACR,eAAe,GACa;QAC5B,OAAO,8BAA8B,CAAC;YACpC,EAAE;YACF,cAAc;YACd,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAChC,EAAE,EACF,cAAc,GACc;QAC5B,OAAO,8BAA8B,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,OAAyB;QACjD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;YACzC,IAAI;YACJ,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO;YACP,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,QAAsB,EAAE;QAC/B,MAAM,gBAAgB,GAAG,cAAc,CAAC;YACtC,KAAK;YACL,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,66 +1,22 @@
1
- import Analytics from 'analytics';
2
- import awsPinpointPlugin from '@analytics/aws-pinpoint';
3
- import * as portal from '@esri/arcgis-rest-portal';
4
1
  import { Amazon } from '.';
5
- import { setPortalItemAccessPermissions } from './set-portal-item-access-permissions';
6
- const mockAnalyticsTrack = jest.fn();
7
- jest.mock('./create-event-log', () => {
8
- return {
9
- createEventLog: jest.fn().mockImplementation(() => {
10
- return { name: 'foo' };
11
- })
12
- };
13
- });
14
- jest.mock('./create-page-view-log', () => {
15
- return {
16
- createPageViewLog: jest.fn().mockImplementation(() => {
17
- return { pageView: 'foo' };
18
- })
19
- };
20
- });
21
- jest.mock('analytics', () => {
22
- return jest.fn().mockImplementation(() => {
23
- return {
24
- track: mockAnalyticsTrack,
25
- };
26
- });
27
- });
28
- jest.mock('@analytics/aws-pinpoint', () => {
29
- return jest.fn().mockImplementation(() => {
30
- return { plugin: 'foo' };
31
- });
32
- });
33
- jest.mock('@esri/arcgis-rest-portal');
34
- const getItemMock = portal.getItem;
35
- const updateItemMock = portal.updateItem;
36
- jest.mock('./set-portal-item-access-permissions');
2
+ import { createPinpointPlugin } from './plugins/pinpoint';
3
+ import { createEsriPlugin } from './plugins/esri';
4
+ jest.mock('./plugins/pinpoint', () => ({
5
+ createPinpointPlugin: jest.fn(() => ({ track: jest.fn(() => true) })),
6
+ }));
7
+ jest.mock('./plugins/esri', () => ({
8
+ createEsriPlugin: jest.fn(() => ({ track: jest.fn(() => true) })),
9
+ }));
10
+ const createPinpointPluginMock = createPinpointPlugin;
11
+ const createEsriPluginMock = createEsriPlugin;
37
12
  describe('Amazon', () => {
38
- beforeEach(() => {
39
- Analytics.mockClear();
40
- awsPinpointPlugin.mockClear();
41
- mockAnalyticsTrack.mockClear();
13
+ afterEach(() => {
14
+ jest.clearAllMocks();
42
15
  });
43
- test('Amazon constructor no app object', () => {
44
- const opts = {
45
- userPoolID: 'pool-id',
46
- };
47
- const telemetry = new Amazon(opts);
48
- expect(telemetry).toEqual(expect.objectContaining({
49
- userPoolID: 'pool-id',
50
- name: 'amazon',
51
- }));
52
- expect(Analytics).toHaveBeenCalledTimes(1);
53
- expect(Analytics).toBeCalledWith({ plugins: [{ plugin: 'foo' }] });
54
- expect(awsPinpointPlugin).toHaveBeenCalledTimes(1);
55
- expect(awsPinpointPlugin).toBeCalledWith(expect.objectContaining({
56
- fips: undefined,
57
- getCredentials: expect.any(Function),
58
- pinpointAppId: undefined,
59
- }));
60
- });
61
- test('Amazon constructor no fips option', () => {
16
+ test('Amazon constructor and permissions', () => {
62
17
  const opts = {
63
18
  userPoolID: 'pool-id',
19
+ mode: 'pinpoint',
64
20
  app: {
65
21
  name: 'test',
66
22
  id: '1234',
@@ -68,139 +24,69 @@ describe('Amazon', () => {
68
24
  };
69
25
  const telemetry = new Amazon(opts);
70
26
  expect(telemetry).toEqual(expect.objectContaining({
71
- app: {
72
- id: '1234',
73
- name: 'test',
74
- },
75
27
  userPoolID: 'pool-id',
76
28
  name: 'amazon',
77
- }));
78
- expect(Analytics).toHaveBeenCalledTimes(1);
79
- expect(Analytics).toBeCalledWith({
80
- app: 'test',
81
- plugins: [{ plugin: 'foo' }],
82
- });
83
- expect(awsPinpointPlugin).toHaveBeenCalledTimes(1);
84
- expect(awsPinpointPlugin).toBeCalledWith(expect.objectContaining({
85
- fips: undefined,
86
- getCredentials: expect.any(Function),
87
- pinpointAppId: '1234',
29
+ mode: 'pinpoint',
88
30
  }));
89
31
  });
90
- test('Amazon constructor fips option', () => {
91
- const opts = {
92
- fips: true,
32
+ test('pinpoint mode initializes pinpoint plugin with mapped options', () => {
33
+ const pinpointPlugin = { track: jest.fn(() => true) };
34
+ createPinpointPluginMock.mockReturnValue(pinpointPlugin);
35
+ new Amazon({
93
36
  userPoolID: 'pool-id',
94
37
  app: {
95
38
  name: 'test',
96
39
  id: '1234',
40
+ version: '1.0.0',
97
41
  },
98
- };
99
- const telemetry = new Amazon(opts);
100
- expect(telemetry).toEqual(expect.objectContaining({
101
- app: {
102
- id: '1234',
103
- name: 'test',
104
- },
42
+ mode: 'pinpoint',
105
43
  fips: true,
106
- userPoolID: 'pool-id',
107
- name: 'amazon',
108
- }));
109
- expect(Analytics).toHaveBeenCalledTimes(1);
110
- expect(Analytics).toBeCalledWith({
111
- app: 'test',
112
- plugins: [{ plugin: 'foo' }],
113
44
  });
114
- expect(awsPinpointPlugin).toHaveBeenCalledTimes(1);
115
- expect(awsPinpointPlugin).toBeCalledWith(expect.objectContaining({
45
+ expect(createPinpointPluginMock).toHaveBeenCalledWith({
46
+ appName: 'test',
47
+ appVersion: '1.0.0',
48
+ appId: '1234',
49
+ userPoolID: 'pool-id',
116
50
  fips: true,
117
- getCredentials: expect.any(Function),
118
- pinpointAppId: '1234',
119
- }));
51
+ });
52
+ expect(createEsriPluginMock).not.toHaveBeenCalled();
120
53
  });
121
- test('Amazon methods call dependencies', () => {
122
- const opts = {
123
- fips: true,
54
+ test('esri mode initializes esri plugin with internal endpoint config', () => {
55
+ const esriPlugin = { track: jest.fn(() => true) };
56
+ createEsriPluginMock.mockReturnValue(esriPlugin);
57
+ new Amazon({
124
58
  userPoolID: 'pool-id',
125
59
  app: {
126
60
  name: 'test',
127
61
  id: '1234',
128
62
  },
129
- };
130
- const telemetry = new Amazon(opts);
131
- telemetry.logPageView('foo');
132
- expect(mockAnalyticsTrack).toHaveBeenCalledTimes(1);
133
- expect(mockAnalyticsTrack.mock.calls[0]).toEqual([
134
- 'pageView',
135
- { pageView: 'foo' },
136
- ]);
137
- telemetry.logEvent({ eventType: 'foo' });
138
- expect(mockAnalyticsTrack).toHaveBeenCalledTimes(2);
139
- expect(mockAnalyticsTrack.mock.calls[1]).toEqual(['foo', { name: 'foo' }]);
140
- });
141
- test('Amazon track can handle undefined event or eventType', () => {
142
- const opts = {
143
- fips: true,
63
+ mode: 'esri',
64
+ });
65
+ expect(createEsriPluginMock).toHaveBeenCalledWith({
66
+ trackerName: 'amazon',
67
+ appName: 'test',
68
+ appVersion: undefined,
69
+ appId: '1234',
144
70
  userPoolID: 'pool-id',
71
+ fips: undefined,
72
+ });
73
+ expect(createPinpointPluginMock).not.toHaveBeenCalled();
74
+ });
75
+ test('esri mode does not throw when userPoolID is missing at runtime', () => {
76
+ new Amazon({
77
+ mode: 'esri',
145
78
  app: {
146
79
  name: 'test',
147
80
  id: '1234',
148
81
  },
149
- };
150
- const telemetry = new Amazon(opts);
151
- telemetry.logPageView(undefined);
152
- expect(mockAnalyticsTrack).toHaveBeenCalledTimes(1);
153
- expect(mockAnalyticsTrack.mock.calls[0]).toEqual([
154
- 'pageView',
155
- { pageView: 'foo' },
156
- ]);
157
- telemetry.logEvent();
158
- expect(mockAnalyticsTrack).toHaveBeenCalledTimes(2);
159
- expect(mockAnalyticsTrack.mock.calls[1]).toEqual(['foo', { name: 'foo' }]);
160
- telemetry.logEvent({});
161
- expect(mockAnalyticsTrack).toHaveBeenCalledTimes(3);
162
- expect(mockAnalyticsTrack.mock.calls[1]).toEqual(['foo', { name: 'foo' }]);
163
- });
164
- describe('init', () => {
165
- it('should set isInitialized to true', async () => {
166
- const opts = {
167
- userPoolID: 'pool-id',
168
- };
169
- const amazon = new Amazon(opts);
170
- expect(amazon.isInitialized).toBeFalsy();
171
- await amazon.init();
172
- expect(amazon.isInitialized).toBeTruthy();
173
82
  });
174
- });
175
- describe('getAccessPermissions', () => {
176
- test('should call getItem', async () => {
177
- const accessPropertiesMock = { access: { foo: 'foo', bar: 'bar' } };
178
- getItemMock.mockResolvedValue({
179
- properties: { telemetry: { arcgis: accessPropertiesMock } },
180
- });
181
- const result = await Amazon.getAccessPermissions({
182
- id: 'test_item_id',
183
- authentication: 'bar',
184
- });
185
- expect(result).toEqual(accessPropertiesMock);
186
- expect(getItemMock).toBeCalledTimes(1);
187
- getItemMock.mockRestore();
188
- });
189
- });
190
- describe('setAccessPermissions', () => {
191
- test('should call setPortalItemAccessPermissions if scope is portal', async () => {
192
- const result = await Amazon.setAccessPermissions({
193
- id: 'test_item_id',
194
- authentication: 'bar',
195
- username: 'test_username',
196
- accessChangeset: [
197
- {
198
- action: 'add',
199
- targetProperty: 'public',
200
- },
201
- ],
202
- });
203
- expect(setPortalItemAccessPermissions).toBeCalledTimes(1);
83
+ expect(createEsriPluginMock).toHaveBeenCalledWith({
84
+ trackerName: 'amazon',
85
+ appName: 'test',
86
+ appVersion: undefined,
87
+ appId: '1234',
88
+ userPoolID: undefined,
89
+ fips: undefined,
204
90
  });
205
91
  });
206
92
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":"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"}