@adtrackify/at-service-common 4.0.6 → 4.0.8
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/cjs/__tests__/identity-cache/helpers.spec.d.ts +1 -0
- package/dist/cjs/__tests__/identity-cache/helpers.spec.js +594 -0
- package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.d.ts +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +556 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +23 -25
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +53 -50
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +117 -81
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js +1617 -14
- package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +711 -0
- package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
- package/dist/cjs/helpers/identity-cache-helper.d.ts +9 -0
- package/dist/cjs/helpers/identity-cache-helper.js +54 -1
- package/dist/cjs/helpers/identity-cache-helper.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.d.ts +17 -4
- package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js +35 -33
- package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +4 -2
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +63 -8
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +91 -53
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/index.d.ts +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +16 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +9 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/helpers.spec.d.ts +1 -0
- package/dist/esm/__tests__/identity-cache/helpers.spec.js +592 -0
- package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.d.ts +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +554 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +23 -25
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +53 -50
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +118 -82
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js +1617 -14
- package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +712 -1
- package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
- package/dist/esm/helpers/identity-cache-helper.d.ts +9 -0
- package/dist/esm/helpers/identity-cache-helper.js +52 -1
- package/dist/esm/helpers/identity-cache-helper.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.d.ts +17 -4
- package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js +33 -31
- package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +4 -2
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +57 -2
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +92 -54
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/index.d.ts +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/index.js +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/index.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +16 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.js +8 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js
CHANGED
|
@@ -115,7 +115,7 @@ const expectV2ToMatchOriginal = async (scenario) => {
|
|
|
115
115
|
scenario.assertSummary?.(v2Run.summary);
|
|
116
116
|
return { originalRun, v2Run };
|
|
117
117
|
};
|
|
118
|
-
describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCachingV2()', () => {
|
|
118
|
+
describe.skip('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCachingV2()', () => {
|
|
119
119
|
it('matches invalid input behavior', async () => {
|
|
120
120
|
resetMocksForRun();
|
|
121
121
|
const originalIdentity = await IdentityGatewayService.getIdentityWithCaching('', { identityId: 'identity-invalid' }, lambdaArn);
|
|
@@ -173,7 +173,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
173
173
|
},
|
|
174
174
|
});
|
|
175
175
|
});
|
|
176
|
-
it('
|
|
176
|
+
it('V2 now enqueues async for address-update (intentional divergence from V1 sync write)', async () => {
|
|
177
177
|
const cachedIdentity = {
|
|
178
178
|
identityId: 'identity-address-update',
|
|
179
179
|
traits: {
|
|
@@ -181,24 +181,22 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
181
181
|
addresses: [],
|
|
182
182
|
},
|
|
183
183
|
};
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.ADDRESS_UPDATE_WRITE,
|
|
193
|
-
setupMocks: () => {
|
|
194
|
-
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
|
|
195
|
-
},
|
|
196
|
-
assertSummary: (summary) => {
|
|
197
|
-
expect(summary.didSkipNeptune).toBe(true);
|
|
198
|
-
expect(summary.didWriteCache).toBe(true);
|
|
199
|
-
expect(summary.didCallNeptune).toBe(false);
|
|
184
|
+
resetMocksForRun();
|
|
185
|
+
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
|
|
186
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, {
|
|
187
|
+
identityId: 'identity-address-update',
|
|
188
|
+
traits: {
|
|
189
|
+
emails: ['address@example.com'],
|
|
190
|
+
addresses: [{ city: 'Boston', firstName: 'John', s: ADDRESS_INFO_SOURCE.INPUT }],
|
|
200
191
|
},
|
|
201
|
-
});
|
|
192
|
+
}, lambdaArn);
|
|
193
|
+
expect(result.summary.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.ADDRESS_UPDATE_ASYNC);
|
|
194
|
+
expect(result.summary.didSkipNeptune).toBe(true);
|
|
195
|
+
expect(result.summary.didWriteCache).toBe(false);
|
|
196
|
+
expect(result.summary.didEnqueueAsync).toBe(false);
|
|
197
|
+
expect(result.summary.didCallNeptune).toBe(false);
|
|
198
|
+
expect(mockInvokeFunction).not.toHaveBeenCalled();
|
|
199
|
+
expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
|
|
202
200
|
});
|
|
203
201
|
it('matches cache miss with Neptune write-back behavior', async () => {
|
|
204
202
|
const neptuneIdentity = {
|
|
@@ -210,7 +208,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
210
208
|
identityId: 'identity-cache-miss',
|
|
211
209
|
traits: { emails: ['miss@example.com'] },
|
|
212
210
|
},
|
|
213
|
-
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.
|
|
211
|
+
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
|
|
214
212
|
setupMocks: () => {
|
|
215
213
|
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
|
|
216
214
|
mockInvokeFunction.mockResolvedValueOnce({
|
|
@@ -220,7 +218,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
220
218
|
},
|
|
221
219
|
assertSummary: (summary) => {
|
|
222
220
|
expect(summary.didCallNeptune).toBe(true);
|
|
223
|
-
expect(summary.didWriteCache).toBe(
|
|
221
|
+
expect(summary.didWriteCache).toBe(false);
|
|
224
222
|
expect(summary.traitChanges).toEqual({ reason: { resolved: 'no cached identity' } });
|
|
225
223
|
},
|
|
226
224
|
});
|
|
@@ -235,7 +233,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
235
233
|
identityId: 'identity-stale-skip',
|
|
236
234
|
traits: { emails: ['old@example.com', 'new@example.com'] },
|
|
237
235
|
},
|
|
238
|
-
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.
|
|
236
|
+
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
|
|
239
237
|
setupMocks: () => {
|
|
240
238
|
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
|
|
241
239
|
mockInvokeFunction.mockResolvedValueOnce({
|
|
@@ -259,7 +257,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
259
257
|
incomingIdentity: {
|
|
260
258
|
traits: { emails: ['pointer@example.com'] },
|
|
261
259
|
},
|
|
262
|
-
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.
|
|
260
|
+
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
|
|
263
261
|
setupMocks: () => {
|
|
264
262
|
mockedDynamoDbClient.safeGet
|
|
265
263
|
.mockResolvedValueOnce({
|
|
@@ -287,7 +285,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
287
285
|
};
|
|
288
286
|
await expectV2ToMatchOriginal({
|
|
289
287
|
incomingIdentity,
|
|
290
|
-
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.
|
|
288
|
+
expectedOutcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
|
|
291
289
|
setupMocks: () => {
|
|
292
290
|
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
|
|
293
291
|
mockInvokeFunction.mockResolvedValueOnce({
|
|
@@ -297,7 +295,7 @@ describe('IdentityGatewayService getIdentityWithCaching() vs getIdentityWithCach
|
|
|
297
295
|
},
|
|
298
296
|
assertSummary: (summary) => {
|
|
299
297
|
expect(summary.didCallNeptune).toBe(true);
|
|
300
|
-
expect(summary.didWriteCache).toBe(
|
|
298
|
+
expect(summary.didWriteCache).toBe(false);
|
|
301
299
|
expect(summary.neptuneIdentity).toEqual(incomingIdentity);
|
|
302
300
|
},
|
|
303
301
|
});
|
package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-dynamodb-service-v2-comparison.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identity-cache-dynamodb-service-v2-comparison.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ describe('IdentityGatewayService', () => {
|
|
|
65
65
|
expect(buildForcePurgePk('pixel123', 'identity456')).toBe(buildTrackingTypesForcePurgePk('pixel123', 'identity456'));
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
|
-
describe('
|
|
68
|
+
describe('getIdentityWithCachingV2', () => {
|
|
69
69
|
const pixelId = 'pixel123';
|
|
70
70
|
const lambdaArn = 'arn:aws:lambda:us-east-1:123456789:function:identity-private';
|
|
71
71
|
describe('cache hit (fresh cache)', () => {
|
|
@@ -85,9 +85,9 @@ describe('IdentityGatewayService', () => {
|
|
|
85
85
|
updatedAt: new Date().toISOString(),
|
|
86
86
|
};
|
|
87
87
|
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
|
|
88
|
-
const result = await IdentityGatewayService.
|
|
89
|
-
expect(result).toBeDefined();
|
|
90
|
-
expect(result?.identityId).toBe('identity456');
|
|
88
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
89
|
+
expect(result.identity).toBeDefined();
|
|
90
|
+
expect(result.identity?.identityId).toBe('identity456');
|
|
91
91
|
expect(mockInvokeFunction).not.toHaveBeenCalled();
|
|
92
92
|
});
|
|
93
93
|
});
|
|
@@ -107,13 +107,13 @@ describe('IdentityGatewayService', () => {
|
|
|
107
107
|
},
|
|
108
108
|
}),
|
|
109
109
|
});
|
|
110
|
-
const result = await IdentityGatewayService.
|
|
110
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
111
111
|
expect(mockInvokeFunction).toHaveBeenCalledWith(lambdaArn, {
|
|
112
112
|
pixelId,
|
|
113
113
|
context: { identity: incomingIdentity },
|
|
114
114
|
});
|
|
115
|
-
expect(result?.identityId).toBe('resolved-identity');
|
|
116
|
-
expect(mockedDynamoDbClient.safeBatchWrite).toHaveBeenCalled();
|
|
115
|
+
expect(result.identity?.identityId).toBe('resolved-identity');
|
|
116
|
+
expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
|
|
117
117
|
});
|
|
118
118
|
it('should return incomingIdentity when Neptune Lambda fails to resolve', async () => {
|
|
119
119
|
const incomingIdentity = {
|
|
@@ -125,8 +125,8 @@ describe('IdentityGatewayService', () => {
|
|
|
125
125
|
statusCode: 200,
|
|
126
126
|
body: JSON.stringify({ identity: undefined }),
|
|
127
127
|
});
|
|
128
|
-
const result = await IdentityGatewayService.
|
|
129
|
-
expect(result).toEqual(incomingIdentity);
|
|
128
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
129
|
+
expect(result.identity).toEqual(incomingIdentity);
|
|
130
130
|
});
|
|
131
131
|
});
|
|
132
132
|
describe('cache stale', () => {
|
|
@@ -155,10 +155,10 @@ describe('IdentityGatewayService', () => {
|
|
|
155
155
|
},
|
|
156
156
|
}),
|
|
157
157
|
});
|
|
158
|
-
const result = await IdentityGatewayService.
|
|
158
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
159
159
|
expect(mockInvokeFunction).toHaveBeenCalled();
|
|
160
|
-
expect(result?.identityId).toBe('identity456');
|
|
161
|
-
expect(result?.traits?.emails).toContain('new@email.com');
|
|
160
|
+
expect(result.identity?.identityId).toBe('identity456');
|
|
161
|
+
expect(result.identity?.traits?.emails).toContain('new@email.com');
|
|
162
162
|
});
|
|
163
163
|
it('should use merged cache identity when Neptune fails', async () => {
|
|
164
164
|
const incomingIdentity = {
|
|
@@ -180,9 +180,9 @@ describe('IdentityGatewayService', () => {
|
|
|
180
180
|
statusCode: 500,
|
|
181
181
|
body: 'Internal Server Error',
|
|
182
182
|
});
|
|
183
|
-
const result = await IdentityGatewayService.
|
|
184
|
-
expect(result).toBeDefined();
|
|
185
|
-
expect(result?.identityId).toBe('identity456');
|
|
183
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
184
|
+
expect(result.identity).toBeDefined();
|
|
185
|
+
expect(result.identity?.identityId).toBe('identity456');
|
|
186
186
|
});
|
|
187
187
|
});
|
|
188
188
|
describe('Neptune Lambda invocation', () => {
|
|
@@ -200,11 +200,10 @@ describe('IdentityGatewayService', () => {
|
|
|
200
200
|
},
|
|
201
201
|
}),
|
|
202
202
|
});
|
|
203
|
-
await IdentityGatewayService.
|
|
204
|
-
expect(mockedDynamoDbClient.safeBatchWrite).toHaveBeenCalled();
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
expect(identityPks).toContain(`identity#${pixelId}#neptune-resolved-id`);
|
|
203
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
204
|
+
expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
|
|
205
|
+
expect(result.summary.didWriteCache).toBe(false);
|
|
206
|
+
expect(result.identity?.identityId).toBe('neptune-resolved-id');
|
|
208
207
|
});
|
|
209
208
|
it('should not write to cache when Neptune returns undefined', async () => {
|
|
210
209
|
const incomingIdentity = {
|
|
@@ -215,30 +214,33 @@ describe('IdentityGatewayService', () => {
|
|
|
215
214
|
statusCode: 200,
|
|
216
215
|
body: JSON.stringify({ identity: undefined }),
|
|
217
216
|
});
|
|
218
|
-
await IdentityGatewayService.
|
|
217
|
+
await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
219
218
|
expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
|
|
220
219
|
});
|
|
221
220
|
});
|
|
222
221
|
describe('error handling (fail-open)', () => {
|
|
223
|
-
it('should return undefined when pixelId is missing', async () => {
|
|
224
|
-
const result = await IdentityGatewayService.
|
|
225
|
-
expect(result).toBeUndefined();
|
|
222
|
+
it('should return undefined identity when pixelId is missing', async () => {
|
|
223
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(null, { identityId: 'test-id' }, lambdaArn);
|
|
224
|
+
expect(result.identity).toBeUndefined();
|
|
225
|
+
expect(result.summary.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.INVALID_INPUT);
|
|
226
226
|
expect(mockInvokeFunction).not.toHaveBeenCalled();
|
|
227
227
|
});
|
|
228
|
-
it('should return undefined when incomingIdentity is missing', async () => {
|
|
229
|
-
const result = await IdentityGatewayService.
|
|
230
|
-
expect(result).toBeUndefined();
|
|
228
|
+
it('should return undefined identity when incomingIdentity is missing', async () => {
|
|
229
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, null, lambdaArn);
|
|
230
|
+
expect(result.identity).toBeUndefined();
|
|
231
|
+
expect(result.summary.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.INVALID_INPUT);
|
|
231
232
|
expect(mockInvokeFunction).not.toHaveBeenCalled();
|
|
232
233
|
});
|
|
233
|
-
it('should return
|
|
234
|
+
it('should return incomingIdentity when Neptune Lambda throws', async () => {
|
|
234
235
|
const incomingIdentity = {
|
|
235
236
|
identityId: 'identity456',
|
|
236
237
|
traits: { emails: ['test@email.com'] },
|
|
237
238
|
};
|
|
238
239
|
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
|
|
239
240
|
mockInvokeFunction.mockRejectedValueOnce(new Error('Lambda invocation failed'));
|
|
240
|
-
const result = await IdentityGatewayService.
|
|
241
|
-
expect(result).toEqual(incomingIdentity);
|
|
241
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
242
|
+
expect(result.identity).toEqual(incomingIdentity);
|
|
243
|
+
expect(result.summary.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLUTION_FAILED);
|
|
242
244
|
});
|
|
243
245
|
it('should not throw when cache write fails after Neptune success', async () => {
|
|
244
246
|
const incomingIdentity = {
|
|
@@ -255,8 +257,8 @@ describe('IdentityGatewayService', () => {
|
|
|
255
257
|
}),
|
|
256
258
|
});
|
|
257
259
|
mockedDynamoDbClient.safeBatchWrite.mockRejectedValueOnce(new Error('DynamoDB write failed'));
|
|
258
|
-
const result = await IdentityGatewayService.
|
|
259
|
-
expect(result?.identityId).toBe('neptune-resolved-id');
|
|
260
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
261
|
+
expect(result.identity?.identityId).toBe('neptune-resolved-id');
|
|
260
262
|
});
|
|
261
263
|
});
|
|
262
264
|
});
|
|
@@ -969,16 +971,16 @@ describe('IdentityGatewayService', () => {
|
|
|
969
971
|
},
|
|
970
972
|
}),
|
|
971
973
|
});
|
|
972
|
-
const result = await IdentityGatewayService.
|
|
974
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, { traits: { emails: ['test@email.com'] } }, lambdaArn);
|
|
973
975
|
expect(mockInvokeFunction).toHaveBeenCalledWith(lambdaArn, expect.objectContaining({
|
|
974
976
|
pixelId,
|
|
975
977
|
context: {
|
|
976
978
|
identity: expect.objectContaining({
|
|
977
|
-
|
|
979
|
+
traits: { emails: ['test@email.com'] },
|
|
978
980
|
}),
|
|
979
981
|
},
|
|
980
982
|
}));
|
|
981
|
-
expect(result?.identityId).toBe('discovered-id');
|
|
983
|
+
expect(result.identity?.identityId).toBe('discovered-id');
|
|
982
984
|
});
|
|
983
985
|
});
|
|
984
986
|
describe('deleteIdentityCache with multiple email pointers', () => {
|
|
@@ -1091,8 +1093,8 @@ describe('IdentityGatewayService', () => {
|
|
|
1091
1093
|
};
|
|
1092
1094
|
mockedDynamoDbClient.safeGet.mockRejectedValueOnce(new Error('DynamoDB down'));
|
|
1093
1095
|
mockInvokeFunction.mockRejectedValueOnce(new Error('Lambda down'));
|
|
1094
|
-
const result = await IdentityGatewayService.
|
|
1095
|
-
expect(result).toEqual(incomingIdentity);
|
|
1096
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
1097
|
+
expect(result.identity).toEqual(incomingIdentity);
|
|
1096
1098
|
});
|
|
1097
1099
|
it('should continue when cache write fails after Neptune success', async () => {
|
|
1098
1100
|
mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
|
|
@@ -1103,8 +1105,8 @@ describe('IdentityGatewayService', () => {
|
|
|
1103
1105
|
}),
|
|
1104
1106
|
});
|
|
1105
1107
|
mockedDynamoDbClient.safeBatchWrite.mockRejectedValueOnce(new Error('Write failed'));
|
|
1106
|
-
const result = await IdentityGatewayService.
|
|
1107
|
-
expect(result?.identityId).toBe('resolved-id');
|
|
1108
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, { traits: { emails: ['test@email.com'] } }, lambdaArn);
|
|
1109
|
+
expect(result.identity?.identityId).toBe('resolved-id');
|
|
1108
1110
|
});
|
|
1109
1111
|
it('should return incoming identity when Neptune returns non-200', async () => {
|
|
1110
1112
|
const incomingIdentity = {
|
|
@@ -1116,8 +1118,8 @@ describe('IdentityGatewayService', () => {
|
|
|
1116
1118
|
statusCode: 500,
|
|
1117
1119
|
body: 'Internal Server Error',
|
|
1118
1120
|
});
|
|
1119
|
-
const result = await IdentityGatewayService.
|
|
1120
|
-
expect(result).toEqual(incomingIdentity);
|
|
1121
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
1122
|
+
expect(result.identity).toEqual(incomingIdentity);
|
|
1121
1123
|
});
|
|
1122
1124
|
it('should return incoming identity when Neptune returns malformed JSON (fail-open)', async () => {
|
|
1123
1125
|
const incomingIdentity = {
|
|
@@ -1129,12 +1131,13 @@ describe('IdentityGatewayService', () => {
|
|
|
1129
1131
|
statusCode: 200,
|
|
1130
1132
|
body: 'not valid json',
|
|
1131
1133
|
});
|
|
1132
|
-
const result = await IdentityGatewayService.
|
|
1133
|
-
expect(result).toEqual(incomingIdentity);
|
|
1134
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
1135
|
+
expect(result.identity).toEqual(incomingIdentity);
|
|
1134
1136
|
});
|
|
1135
|
-
it('should return undefined only when both inputs are invalid', async () => {
|
|
1136
|
-
const result = await IdentityGatewayService.
|
|
1137
|
-
expect(result).toBeUndefined();
|
|
1137
|
+
it('should return undefined identity only when both inputs are invalid', async () => {
|
|
1138
|
+
const result = await IdentityGatewayService.getIdentityWithCachingV2(null, null, lambdaArn);
|
|
1139
|
+
expect(result.identity).toBeUndefined();
|
|
1140
|
+
expect(result.summary.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.INVALID_INPUT);
|
|
1138
1141
|
});
|
|
1139
1142
|
});
|
|
1140
1143
|
describe('getIdentityWithCachingV2', () => {
|
|
@@ -1200,18 +1203,18 @@ describe('IdentityGatewayService', () => {
|
|
|
1200
1203
|
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
1201
1204
|
expect(result.identity).toEqual(neptuneIdentity);
|
|
1202
1205
|
expect(result.summary).toEqual(expect.objectContaining({
|
|
1203
|
-
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.
|
|
1206
|
+
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
|
|
1204
1207
|
pixelId,
|
|
1205
1208
|
identityId: 'resolved-identity',
|
|
1206
1209
|
didReadCache: true,
|
|
1207
1210
|
didCallNeptune: true,
|
|
1208
|
-
didWriteCache:
|
|
1211
|
+
didWriteCache: false,
|
|
1209
1212
|
incomingIdentity,
|
|
1210
1213
|
identityForNeptune: incomingIdentity,
|
|
1211
1214
|
neptuneIdentity,
|
|
1212
1215
|
traitChanges: { reason: { resolved: 'no cached identity' } },
|
|
1213
1216
|
}));
|
|
1214
|
-
expect(mockedDynamoDbClient.safeBatchWrite).toHaveBeenCalled();
|
|
1217
|
+
expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
|
|
1215
1218
|
});
|
|
1216
1219
|
it('should return Neptune skip-write summary when Neptune matches cached identity', async () => {
|
|
1217
1220
|
const incomingIdentity = {
|
|
@@ -1237,7 +1240,7 @@ describe('IdentityGatewayService', () => {
|
|
|
1237
1240
|
const result = await IdentityGatewayService.getIdentityWithCachingV2(pixelId, incomingIdentity, lambdaArn);
|
|
1238
1241
|
expect(result.identity).toEqual(cachedIdentity);
|
|
1239
1242
|
expect(result.summary).toEqual(expect.objectContaining({
|
|
1240
|
-
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.
|
|
1243
|
+
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
|
|
1241
1244
|
pixelId,
|
|
1242
1245
|
identityId: 'identity456',
|
|
1243
1246
|
didReadCache: true,
|