@optimizely-opal/opal-tool-ocp-sdk 1.0.0-OCP-1442.5 → 1.0.0-OCP-1449.1

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 (64) hide show
  1. package/README.md +114 -72
  2. package/dist/auth/AuthUtils.d.ts +12 -5
  3. package/dist/auth/AuthUtils.d.ts.map +1 -1
  4. package/dist/auth/AuthUtils.js +80 -25
  5. package/dist/auth/AuthUtils.js.map +1 -1
  6. package/dist/auth/AuthUtils.test.js +161 -117
  7. package/dist/auth/AuthUtils.test.js.map +1 -1
  8. package/dist/function/GlobalToolFunction.d.ts +1 -1
  9. package/dist/function/GlobalToolFunction.d.ts.map +1 -1
  10. package/dist/function/GlobalToolFunction.js +17 -4
  11. package/dist/function/GlobalToolFunction.js.map +1 -1
  12. package/dist/function/GlobalToolFunction.test.js +54 -8
  13. package/dist/function/GlobalToolFunction.test.js.map +1 -1
  14. package/dist/function/ToolFunction.d.ts +1 -1
  15. package/dist/function/ToolFunction.d.ts.map +1 -1
  16. package/dist/function/ToolFunction.js +24 -4
  17. package/dist/function/ToolFunction.js.map +1 -1
  18. package/dist/function/ToolFunction.test.js +260 -8
  19. package/dist/function/ToolFunction.test.js.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/logging/ToolLogger.d.ts.map +1 -1
  25. package/dist/logging/ToolLogger.js +13 -12
  26. package/dist/logging/ToolLogger.js.map +1 -1
  27. package/dist/logging/ToolLogger.test.js +171 -0
  28. package/dist/logging/ToolLogger.test.js.map +1 -1
  29. package/dist/service/Service.d.ts +88 -2
  30. package/dist/service/Service.d.ts.map +1 -1
  31. package/dist/service/Service.js +227 -55
  32. package/dist/service/Service.js.map +1 -1
  33. package/dist/service/Service.test.js +464 -36
  34. package/dist/service/Service.test.js.map +1 -1
  35. package/dist/types/ToolError.d.ts +59 -0
  36. package/dist/types/ToolError.d.ts.map +1 -0
  37. package/dist/types/ToolError.js +79 -0
  38. package/dist/types/ToolError.js.map +1 -0
  39. package/dist/types/ToolError.test.d.ts +2 -0
  40. package/dist/types/ToolError.test.d.ts.map +1 -0
  41. package/dist/types/ToolError.test.js +161 -0
  42. package/dist/types/ToolError.test.js.map +1 -0
  43. package/dist/validation/ParameterValidator.d.ts +5 -16
  44. package/dist/validation/ParameterValidator.d.ts.map +1 -1
  45. package/dist/validation/ParameterValidator.js +10 -3
  46. package/dist/validation/ParameterValidator.js.map +1 -1
  47. package/dist/validation/ParameterValidator.test.js +186 -146
  48. package/dist/validation/ParameterValidator.test.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/auth/AuthUtils.test.ts +176 -157
  51. package/src/auth/AuthUtils.ts +96 -33
  52. package/src/function/GlobalToolFunction.test.ts +54 -8
  53. package/src/function/GlobalToolFunction.ts +26 -6
  54. package/src/function/ToolFunction.test.ts +274 -8
  55. package/src/function/ToolFunction.ts +33 -7
  56. package/src/index.ts +1 -0
  57. package/src/logging/ToolLogger.test.ts +184 -0
  58. package/src/logging/ToolLogger.ts +13 -12
  59. package/src/service/Service.test.ts +577 -34
  60. package/src/service/Service.ts +286 -54
  61. package/src/types/ToolError.test.ts +192 -0
  62. package/src/types/ToolError.ts +95 -0
  63. package/src/validation/ParameterValidator.test.ts +185 -158
  64. package/src/validation/ParameterValidator.ts +17 -20
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const app_sdk_1 = require("@zaiusinc/app-sdk");
5
5
  const TokenVerifier_1 = require("./TokenVerifier");
6
6
  const AuthUtils_1 = require("./AuthUtils");
7
+ const ToolError_1 = require("../types/ToolError");
7
8
  // Mock the dependencies
8
9
  jest.mock('./TokenVerifier', () => ({
9
10
  getTokenVerifier: jest.fn(),
@@ -43,25 +44,23 @@ describe('AuthUtils', () => {
43
44
  mockTokenVerifier.verify.mockResolvedValue(true);
44
45
  });
45
46
  describe('when request is for discovery endpoint', () => {
46
- it('should return true without authentication', async () => {
47
+ it('should succeed without authentication', async () => {
47
48
  const request = { path: '/discovery' };
48
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
49
- expect(result).toBe(true);
49
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).resolves.toBeUndefined();
50
50
  expect(mockGetTokenVerifier).not.toHaveBeenCalled();
51
51
  expect(mockTokenVerifier.verify).not.toHaveBeenCalled();
52
52
  });
53
53
  });
54
54
  describe('when request is for ready endpoint', () => {
55
- it('should return true without authentication', async () => {
55
+ it('should succeed without authentication', async () => {
56
56
  const request = { path: '/ready' };
57
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
58
- expect(result).toBe(true);
57
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).resolves.toBeUndefined();
59
58
  expect(mockGetTokenVerifier).not.toHaveBeenCalled();
60
59
  expect(mockTokenVerifier.verify).not.toHaveBeenCalled();
61
60
  });
62
61
  });
63
62
  describe('when request has valid authentication', () => {
64
- it('should return true for valid OptiID token with matching organization', async () => {
63
+ it('should succeed for valid OptiID token with matching organization', async () => {
65
64
  const request = {
66
65
  path: '/some-tool',
67
66
  bodyJSON: {
@@ -74,8 +73,7 @@ describe('AuthUtils', () => {
74
73
  }
75
74
  }
76
75
  };
77
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
78
- expect(result).toBe(true);
76
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).resolves.toBeUndefined();
79
77
  expect(mockGetTokenVerifier).toHaveBeenCalled();
80
78
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
81
79
  });
@@ -92,8 +90,7 @@ describe('AuthUtils', () => {
92
90
  }
93
91
  }
94
92
  };
95
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
96
- expect(result).toBe(true);
93
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).resolves.toBeUndefined();
97
94
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
98
95
  });
99
96
  it('should handle mixed case provider names', async () => {
@@ -109,31 +106,26 @@ describe('AuthUtils', () => {
109
106
  }
110
107
  }
111
108
  };
112
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
113
- expect(result).toBe(true);
109
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).resolves.toBeUndefined();
114
110
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
115
111
  });
116
112
  });
117
113
  describe('when authentication fails', () => {
118
- it('should return false when auth data is missing', async () => {
114
+ it('should throw ToolError when auth data is missing', async () => {
119
115
  const request = {
120
116
  path: '/some-tool',
121
117
  bodyJSON: {}
122
118
  };
123
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
124
- expect(result).toBe(false);
125
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
119
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
126
120
  expect(mockTokenVerifier.verify).not.toHaveBeenCalled();
127
121
  });
128
- it('should return false when bodyJSON is missing', async () => {
122
+ it('should throw ToolError when bodyJSON is missing', async () => {
129
123
  const request = {
130
124
  path: '/some-tool'
131
125
  };
132
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
133
- expect(result).toBe(false);
134
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
126
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
135
127
  });
136
- it('should return false when provider is not OptiID', async () => {
128
+ it('should throw ToolError when provider is not OptiID', async () => {
137
129
  const request = {
138
130
  path: '/some-tool',
139
131
  bodyJSON: {
@@ -146,11 +138,9 @@ describe('AuthUtils', () => {
146
138
  }
147
139
  }
148
140
  };
149
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
150
- expect(result).toBe(false);
151
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
141
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
152
142
  });
153
- it('should return false when access token is missing', async () => {
143
+ it('should throw ToolError when access token is missing', async () => {
154
144
  const request = {
155
145
  path: '/some-tool',
156
146
  bodyJSON: {
@@ -163,11 +153,9 @@ describe('AuthUtils', () => {
163
153
  }
164
154
  }
165
155
  };
166
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
167
- expect(result).toBe(false);
168
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
156
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
169
157
  });
170
- it('should return false when access token is empty string', async () => {
158
+ it('should throw ToolError when access token is empty string', async () => {
171
159
  const request = {
172
160
  path: '/some-tool',
173
161
  bodyJSON: {
@@ -180,11 +168,9 @@ describe('AuthUtils', () => {
180
168
  }
181
169
  }
182
170
  };
183
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
184
- expect(result).toBe(false);
185
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
171
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
186
172
  });
187
- it('should return false when access token is undefined', async () => {
173
+ it('should throw ToolError when access token is undefined', async () => {
188
174
  const request = {
189
175
  path: '/some-tool',
190
176
  bodyJSON: {
@@ -197,13 +183,11 @@ describe('AuthUtils', () => {
197
183
  }
198
184
  }
199
185
  };
200
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
201
- expect(result).toBe(false);
202
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
186
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
203
187
  });
204
188
  });
205
189
  describe('when organization validation fails', () => {
206
- it('should return false when customer_id does not match app organization', async () => {
190
+ it('should throw ToolError when customer_id does not match app organization', async () => {
207
191
  const request = {
208
192
  path: '/some-tool',
209
193
  bodyJSON: {
@@ -216,12 +200,10 @@ describe('AuthUtils', () => {
216
200
  }
217
201
  }
218
202
  };
219
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
220
- expect(result).toBe(false);
221
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('Invalid organisation ID: expected test-org-123, received different-org-456');
203
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
222
204
  expect(mockTokenVerifier.verify).not.toHaveBeenCalled();
223
205
  });
224
- it('should return false when customer_id is missing', async () => {
206
+ it('should throw ToolError when customer_id is missing', async () => {
225
207
  const request = {
226
208
  path: '/some-tool',
227
209
  bodyJSON: {
@@ -234,11 +216,9 @@ describe('AuthUtils', () => {
234
216
  }
235
217
  }
236
218
  };
237
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
238
- expect(result).toBe(false);
239
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('Organisation ID is required but not provided');
219
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
240
220
  });
241
- it('should return false when customer_id is empty string', async () => {
221
+ it('should throw ToolError when customer_id is empty string', async () => {
242
222
  const request = {
243
223
  path: '/some-tool',
244
224
  bodyJSON: {
@@ -251,9 +231,7 @@ describe('AuthUtils', () => {
251
231
  }
252
232
  }
253
233
  };
254
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
255
- expect(result).toBe(false);
256
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('Organisation ID is required but not provided');
234
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
257
235
  });
258
236
  it('should handle case when app context has no account', async () => {
259
237
  mockGetAppContext.mockReturnValue({});
@@ -269,9 +247,7 @@ describe('AuthUtils', () => {
269
247
  }
270
248
  }
271
249
  };
272
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
273
- expect(result).toBe(false);
274
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('Invalid organisation ID: expected undefined, received some-org-123');
250
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
275
251
  });
276
252
  it('should handle case when app context is null', async () => {
277
253
  mockGetAppContext.mockReturnValue(null);
@@ -287,13 +263,11 @@ describe('AuthUtils', () => {
287
263
  }
288
264
  }
289
265
  };
290
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
291
- expect(result).toBe(false);
292
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('Invalid organisation ID: expected undefined, received some-org-123');
266
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
293
267
  });
294
268
  });
295
269
  describe('when token validation fails', () => {
296
- it('should return false when token verifier returns false', async () => {
270
+ it('should throw ToolError when token verifier returns false', async () => {
297
271
  mockTokenVerifier.verify.mockResolvedValue(false);
298
272
  const request = {
299
273
  path: '/some-tool',
@@ -307,11 +281,10 @@ describe('AuthUtils', () => {
307
281
  }
308
282
  }
309
283
  };
310
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
311
- expect(result).toBe(false);
284
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
312
285
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('invalid-token');
313
286
  });
314
- it('should return false when token verification throws an error', async () => {
287
+ it('should throw ToolError when token verification throws an error', async () => {
315
288
  const verificationError = new Error('Token verification failed');
316
289
  mockTokenVerifier.verify.mockRejectedValue(verificationError);
317
290
  const request = {
@@ -326,11 +299,9 @@ describe('AuthUtils', () => {
326
299
  }
327
300
  }
328
301
  };
329
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
330
- expect(result).toBe(false);
331
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token validation failed:', verificationError);
302
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
332
303
  });
333
- it('should return false when getTokenVerifier throws an error', async () => {
304
+ it('should throw ToolError when getTokenVerifier throws an error', async () => {
334
305
  const verifierError = new Error('Failed to get token verifier');
335
306
  mockGetTokenVerifier.mockRejectedValue(verifierError);
336
307
  const request = {
@@ -345,9 +316,7 @@ describe('AuthUtils', () => {
345
316
  }
346
317
  }
347
318
  };
348
- const result = await (0, AuthUtils_1.authenticateRegularRequest)(request);
349
- expect(result).toBe(false);
350
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token validation failed:', verifierError);
319
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
351
320
  });
352
321
  });
353
322
  });
@@ -357,25 +326,23 @@ describe('AuthUtils', () => {
357
326
  mockTokenVerifier.verify.mockResolvedValue(true);
358
327
  });
359
328
  describe('when request is for discovery endpoint', () => {
360
- it('should return true without authentication', async () => {
329
+ it('should succeed without authentication', async () => {
361
330
  const request = { path: '/discovery' };
362
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
363
- expect(result).toBe(true);
331
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
364
332
  expect(mockGetTokenVerifier).not.toHaveBeenCalled();
365
333
  expect(mockTokenVerifier.verify).not.toHaveBeenCalled();
366
334
  });
367
335
  });
368
336
  describe('when request is for ready endpoint', () => {
369
- it('should return true without authentication', async () => {
337
+ it('should succeed without authentication', async () => {
370
338
  const request = { path: '/ready' };
371
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
372
- expect(result).toBe(true);
339
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
373
340
  expect(mockGetTokenVerifier).not.toHaveBeenCalled();
374
341
  expect(mockTokenVerifier.verify).not.toHaveBeenCalled();
375
342
  });
376
343
  });
377
344
  describe('when request has valid authentication', () => {
378
- it('should return true for valid OptiID token regardless of organization', async () => {
345
+ it('should succeed for valid OptiID token regardless of organization', async () => {
379
346
  const request = {
380
347
  path: '/global-tool',
381
348
  bodyJSON: {
@@ -388,13 +355,12 @@ describe('AuthUtils', () => {
388
355
  }
389
356
  }
390
357
  };
391
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
392
- expect(result).toBe(true);
358
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
393
359
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
394
360
  // Should not log organization validation errors for global requests
395
361
  expect(app_sdk_1.logger.error).not.toHaveBeenCalledWith(expect.stringContaining('Invalid organisation ID'));
396
362
  });
397
- it('should return true even without customer_id', async () => {
363
+ it('should succeed even without customer_id', async () => {
398
364
  const request = {
399
365
  path: '/global-tool',
400
366
  bodyJSON: {
@@ -407,8 +373,7 @@ describe('AuthUtils', () => {
407
373
  }
408
374
  }
409
375
  };
410
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
411
- expect(result).toBe(true);
376
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
412
377
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
413
378
  });
414
379
  it('should handle case-insensitive provider names', async () => {
@@ -424,22 +389,19 @@ describe('AuthUtils', () => {
424
389
  }
425
390
  }
426
391
  };
427
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
428
- expect(result).toBe(true);
392
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
429
393
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
430
394
  });
431
395
  });
432
396
  describe('when authentication fails', () => {
433
- it('should return false when auth data is missing', async () => {
397
+ it('should throw ToolError when auth data is missing', async () => {
434
398
  const request = {
435
399
  path: '/global-tool',
436
400
  bodyJSON: {}
437
401
  };
438
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
439
- expect(result).toBe(false);
440
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
402
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
441
403
  });
442
- it('should return false when provider is not OptiID', async () => {
404
+ it('should throw ToolError when provider is not OptiID', async () => {
443
405
  const request = {
444
406
  path: '/global-tool',
445
407
  bodyJSON: {
@@ -452,11 +414,9 @@ describe('AuthUtils', () => {
452
414
  }
453
415
  }
454
416
  };
455
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
456
- expect(result).toBe(false);
457
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
417
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
458
418
  });
459
- it('should return false when access token is missing', async () => {
419
+ it('should throw ToolError when access token is missing', async () => {
460
420
  const request = {
461
421
  path: '/global-tool',
462
422
  bodyJSON: {
@@ -469,11 +429,9 @@ describe('AuthUtils', () => {
469
429
  }
470
430
  }
471
431
  };
472
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
473
- expect(result).toBe(false);
474
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
432
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
475
433
  });
476
- it('should return false when access token is empty', async () => {
434
+ it('should throw ToolError when access token is empty', async () => {
477
435
  const request = {
478
436
  path: '/global-tool',
479
437
  bodyJSON: {
@@ -486,13 +444,11 @@ describe('AuthUtils', () => {
486
444
  }
487
445
  }
488
446
  };
489
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
490
- expect(result).toBe(false);
491
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
447
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
492
448
  });
493
449
  });
494
450
  describe('when token validation fails', () => {
495
- it('should return false when token verifier returns false', async () => {
451
+ it('should throw ToolError when token verifier returns false', async () => {
496
452
  mockTokenVerifier.verify.mockResolvedValue(false);
497
453
  const request = {
498
454
  path: '/global-tool',
@@ -506,11 +462,10 @@ describe('AuthUtils', () => {
506
462
  }
507
463
  }
508
464
  };
509
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
510
- expect(result).toBe(false);
465
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
511
466
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('invalid-token');
512
467
  });
513
- it('should return false when token verification throws an error', async () => {
468
+ it('should throw ToolError when token verification throws an error', async () => {
514
469
  const verificationError = new Error('Global token verification failed');
515
470
  mockTokenVerifier.verify.mockRejectedValue(verificationError);
516
471
  const request = {
@@ -525,9 +480,7 @@ describe('AuthUtils', () => {
525
480
  }
526
481
  }
527
482
  };
528
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
529
- expect(result).toBe(false);
530
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token validation failed:', verificationError);
483
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
531
484
  });
532
485
  });
533
486
  describe('organization validation differences from authenticateRegularRequest', () => {
@@ -544,8 +497,7 @@ describe('AuthUtils', () => {
544
497
  }
545
498
  }
546
499
  };
547
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
548
- expect(result).toBe(true);
500
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
549
501
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
550
502
  // Should NOT log organization validation errors
551
503
  expect(app_sdk_1.logger.error).not.toHaveBeenCalledWith(expect.stringContaining('Invalid organisation ID'));
@@ -565,8 +517,7 @@ describe('AuthUtils', () => {
565
517
  }
566
518
  }
567
519
  };
568
- const result = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
569
- expect(result).toBe(true);
520
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).resolves.toBeUndefined();
570
521
  expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-token-123');
571
522
  });
572
523
  });
@@ -577,11 +528,8 @@ describe('AuthUtils', () => {
577
528
  path: '/some-tool',
578
529
  bodyJSON: null
579
530
  };
580
- const result1 = await (0, AuthUtils_1.authenticateRegularRequest)(request);
581
- const result2 = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
582
- expect(result1).toBe(false);
583
- expect(result2).toBe(false);
584
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
531
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
532
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
585
533
  });
586
534
  it('should handle malformed auth objects', async () => {
587
535
  const request = {
@@ -590,11 +538,107 @@ describe('AuthUtils', () => {
590
538
  auth: 'invalid-auth-format'
591
539
  }
592
540
  };
593
- const result1 = await (0, AuthUtils_1.authenticateRegularRequest)(request);
594
- const result2 = await (0, AuthUtils_1.authenticateGlobalRequest)(request);
595
- expect(result1).toBe(false);
596
- expect(result2).toBe(false);
597
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith('OptiID token is required but not provided');
541
+ await expect((0, AuthUtils_1.authenticateRegularRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
542
+ await expect((0, AuthUtils_1.authenticateGlobalRequest)(request)).rejects.toThrow(ToolError_1.ToolError);
543
+ });
544
+ });
545
+ describe('authenticateInternalRequest', () => {
546
+ it('should return true for valid OptiID token in Authorization header', async () => {
547
+ mockTokenVerifier.verify.mockResolvedValue(true);
548
+ const mockRequest = {
549
+ headers: {
550
+ get: jest.fn().mockImplementation((name) => {
551
+ if (name === 'Authorization')
552
+ return 'valid-internal-token';
553
+ return null;
554
+ })
555
+ }
556
+ };
557
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).resolves.toBeUndefined();
558
+ expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-internal-token');
559
+ });
560
+ it('should return true for valid OptiID token in lowercase header', async () => {
561
+ mockTokenVerifier.verify.mockResolvedValue(true);
562
+ const mockRequest = {
563
+ headers: {
564
+ get: jest.fn().mockImplementation((name) => {
565
+ if (name === 'authorization')
566
+ return 'valid-internal-token';
567
+ return null;
568
+ })
569
+ }
570
+ };
571
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).resolves.toBeUndefined();
572
+ expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-internal-token');
573
+ });
574
+ it('should throw ToolError when Authorization header is missing', async () => {
575
+ const mockRequest = {
576
+ headers: {
577
+ get: jest.fn().mockReturnValue(null) // No Authorization header
578
+ }
579
+ };
580
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow(ToolError_1.ToolError);
581
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow('Unauthorized');
582
+ });
583
+ it('should throw ToolError when headers object is missing', async () => {
584
+ const mockRequest = {}; // No headers object
585
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow(ToolError_1.ToolError);
586
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow('Unauthorized');
587
+ });
588
+ it('should throw ToolError when token verification fails', async () => {
589
+ mockTokenVerifier.verify.mockResolvedValue(false);
590
+ const mockRequest = {
591
+ headers: {
592
+ get: jest.fn().mockImplementation((name) => {
593
+ if (name === 'Authorization')
594
+ return 'invalid-token';
595
+ return null;
596
+ })
597
+ }
598
+ };
599
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow(ToolError_1.ToolError);
600
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow('Unauthorized');
601
+ });
602
+ it('should throw ToolError when token verifier throws an error', async () => {
603
+ mockTokenVerifier.verify.mockRejectedValue(new Error('Token service unavailable'));
604
+ const mockRequest = {
605
+ headers: {
606
+ get: jest.fn().mockImplementation((name) => {
607
+ if (name === 'Authorization')
608
+ return 'some-token';
609
+ return null;
610
+ })
611
+ }
612
+ };
613
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow(ToolError_1.ToolError);
614
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow('Unauthorized');
615
+ });
616
+ it('should throw ToolError when token verification throws an error', async () => {
617
+ mockTokenVerifier.verify.mockRejectedValue(new Error('Service error'));
618
+ const mockRequest = {
619
+ headers: {
620
+ get: jest.fn().mockImplementation((name) => {
621
+ if (name === 'Authorization')
622
+ return 'valid-token';
623
+ return null;
624
+ })
625
+ }
626
+ };
627
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow(ToolError_1.ToolError);
628
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow('Unauthorized');
629
+ });
630
+ it('should handle empty string token', async () => {
631
+ const mockRequest = {
632
+ headers: {
633
+ get: jest.fn().mockImplementation((name) => {
634
+ if (name === 'Authorization')
635
+ return '';
636
+ return null;
637
+ })
638
+ }
639
+ };
640
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow(ToolError_1.ToolError);
641
+ await expect((0, AuthUtils_1.authenticateInternalRequest)(mockRequest)).rejects.toThrow('Unauthorized');
598
642
  });
599
643
  });
600
644
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AuthUtils.test.js","sourceRoot":"","sources":["../../src/auth/AuthUtils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthUtils.test.js","sourceRoot":"","sources":["../../src/auth/AuthUtils.test.ts"],"names":[],"mappings":"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"}