@optimizely-opal/opal-tool-ocp-sdk 0.0.0-beta.10 → 0.0.0-beta.11
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/README.md +43 -9
- package/dist/function/ToolFunction.d.ts +7 -4
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +10 -39
- package/dist/function/ToolFunction.js.map +1 -1
- package/dist/function/ToolFunction.test.js +196 -177
- package/dist/function/ToolFunction.test.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/service/Service.d.ts +7 -7
- package/dist/service/Service.d.ts.map +1 -1
- package/dist/service/Service.js +16 -22
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +3 -8
- package/dist/service/Service.test.js.map +1 -1
- package/dist/types/Models.d.ts +5 -5
- package/dist/types/Models.d.ts.map +1 -1
- package/dist/types/Models.js +9 -9
- package/dist/types/Models.js.map +1 -1
- package/package.json +3 -5
- package/src/function/ToolFunction.test.ts +214 -194
- package/src/function/ToolFunction.ts +11 -45
- package/src/index.ts +0 -1
- package/src/service/Service.test.ts +3 -8
- package/src/service/Service.ts +17 -22
- package/src/types/Models.ts +4 -4
- package/dist/auth/TokenVerifier.d.ts +0 -31
- package/dist/auth/TokenVerifier.d.ts.map +0 -1
- package/dist/auth/TokenVerifier.js +0 -127
- package/dist/auth/TokenVerifier.js.map +0 -1
- package/dist/auth/TokenVerifier.test.d.ts +0 -2
- package/dist/auth/TokenVerifier.test.d.ts.map +0 -1
- package/dist/auth/TokenVerifier.test.js +0 -114
- package/dist/auth/TokenVerifier.test.js.map +0 -1
- package/src/auth/TokenVerifier.test.ts +0 -152
- package/src/auth/TokenVerifier.ts +0 -145
|
@@ -3,20 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const ToolFunction_1 = require("./ToolFunction");
|
|
4
4
|
const Service_1 = require("../service/Service");
|
|
5
5
|
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
6
|
-
|
|
7
|
-
// Mock the dependencies
|
|
6
|
+
// Mock the toolsService
|
|
8
7
|
jest.mock('../service/Service', () => ({
|
|
9
8
|
toolsService: {
|
|
10
9
|
processRequest: jest.fn(),
|
|
10
|
+
extractBearerToken: jest.fn(),
|
|
11
11
|
},
|
|
12
12
|
}));
|
|
13
|
-
|
|
14
|
-
getTokenVerifier: jest.fn(),
|
|
15
|
-
}));
|
|
13
|
+
// Mock the Request and Response classes and Function base class
|
|
16
14
|
jest.mock('@zaiusinc/app-sdk', () => ({
|
|
17
15
|
Function: class {
|
|
18
16
|
request;
|
|
19
17
|
constructor(_name) {
|
|
18
|
+
// Mock constructor that accepts optional name parameter
|
|
20
19
|
this.request = {};
|
|
21
20
|
}
|
|
22
21
|
},
|
|
@@ -28,29 +27,33 @@ jest.mock('@zaiusinc/app-sdk', () => ({
|
|
|
28
27
|
bodyAsU8Array: new Uint8Array()
|
|
29
28
|
})),
|
|
30
29
|
amendLogContext: jest.fn(),
|
|
31
|
-
getAppContext: jest.fn(),
|
|
32
|
-
logger: {
|
|
33
|
-
info: jest.fn(),
|
|
34
|
-
error: jest.fn(),
|
|
35
|
-
warn: jest.fn(),
|
|
36
|
-
debug: jest.fn(),
|
|
37
|
-
},
|
|
38
30
|
}));
|
|
39
31
|
// Create a concrete implementation for testing
|
|
40
32
|
class TestToolFunction extends ToolFunction_1.ToolFunction {
|
|
33
|
+
mockValidateBearerToken;
|
|
41
34
|
mockReady;
|
|
42
35
|
constructor(request) {
|
|
43
|
-
super(request || {});
|
|
36
|
+
super(request || {}); // Pass the request parameter properly
|
|
37
|
+
// Set the request directly without defaulting to empty object
|
|
44
38
|
this.request = request;
|
|
39
|
+
this.mockValidateBearerToken = jest.fn().mockReturnValue(true);
|
|
45
40
|
this.mockReady = jest.fn().mockResolvedValue(true);
|
|
46
41
|
}
|
|
42
|
+
// Override the concrete method with mock implementation for testing
|
|
43
|
+
validateBearerToken(bearerToken) {
|
|
44
|
+
return this.mockValidateBearerToken(bearerToken);
|
|
45
|
+
}
|
|
47
46
|
// Override the ready method with mock implementation for testing
|
|
48
47
|
ready() {
|
|
49
48
|
return this.mockReady();
|
|
50
49
|
}
|
|
50
|
+
// Expose request and validation mock for testing
|
|
51
51
|
getRequest() {
|
|
52
52
|
return this.request;
|
|
53
53
|
}
|
|
54
|
+
getMockValidateBearerToken() {
|
|
55
|
+
return this.mockValidateBearerToken;
|
|
56
|
+
}
|
|
54
57
|
getMockReady() {
|
|
55
58
|
return this.mockReady;
|
|
56
59
|
}
|
|
@@ -60,86 +63,30 @@ describe('ToolFunction', () => {
|
|
|
60
63
|
let mockResponse;
|
|
61
64
|
let toolFunction;
|
|
62
65
|
let mockProcessRequest;
|
|
63
|
-
let
|
|
64
|
-
let mockGetAppContext;
|
|
65
|
-
let mockTokenVerifier;
|
|
66
|
+
let mockExtractBearerToken;
|
|
66
67
|
beforeEach(() => {
|
|
67
68
|
jest.clearAllMocks();
|
|
68
|
-
// Create mock
|
|
69
|
-
mockTokenVerifier = {
|
|
70
|
-
verify: jest.fn(),
|
|
71
|
-
};
|
|
72
|
-
// Setup the mocks
|
|
73
|
-
mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
|
|
74
|
-
mockGetTokenVerifier = jest.mocked(TokenVerifier_1.getTokenVerifier);
|
|
75
|
-
mockGetAppContext = jest.mocked(app_sdk_1.getAppContext);
|
|
76
|
-
mockGetTokenVerifier.mockResolvedValue(mockTokenVerifier);
|
|
77
|
-
mockGetAppContext.mockReturnValue({
|
|
78
|
-
account: {
|
|
79
|
-
organizationId: 'app-org-123'
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
// Create mock request with bodyJSON structure
|
|
69
|
+
// Create mock instances
|
|
83
70
|
mockRequest = {
|
|
84
71
|
headers: new Map(),
|
|
85
72
|
method: 'POST',
|
|
86
|
-
path: '/test'
|
|
87
|
-
bodyJSON: {
|
|
88
|
-
parameters: {
|
|
89
|
-
task_id: 'task-123',
|
|
90
|
-
content_id: 'content-456'
|
|
91
|
-
},
|
|
92
|
-
auth: {
|
|
93
|
-
provider: 'OptiID',
|
|
94
|
-
credentials: {
|
|
95
|
-
token_type: 'Bearer',
|
|
96
|
-
access_token: 'valid-access-token',
|
|
97
|
-
org_sso_id: 'org-sso-123',
|
|
98
|
-
user_id: 'user-456',
|
|
99
|
-
instance_id: 'instance-789',
|
|
100
|
-
customer_id: 'app-org-123',
|
|
101
|
-
product_sku: 'OPAL'
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
environment: {
|
|
105
|
-
execution_mode: 'headless'
|
|
106
|
-
}
|
|
107
|
-
}
|
|
73
|
+
path: '/test'
|
|
108
74
|
};
|
|
109
75
|
mockResponse = {};
|
|
76
|
+
// Setup the mocks
|
|
77
|
+
mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
|
|
78
|
+
mockExtractBearerToken = jest.mocked(Service_1.toolsService.extractBearerToken);
|
|
79
|
+
// Create test instance
|
|
110
80
|
toolFunction = new TestToolFunction(mockRequest);
|
|
111
81
|
});
|
|
112
|
-
// Helper function to create a ready request with valid auth
|
|
113
|
-
const createReadyRequestWithAuth = () => ({
|
|
114
|
-
headers: new Map(),
|
|
115
|
-
method: 'GET',
|
|
116
|
-
path: '/ready',
|
|
117
|
-
bodyJSON: {
|
|
118
|
-
auth: {
|
|
119
|
-
provider: 'OptiID',
|
|
120
|
-
credentials: {
|
|
121
|
-
access_token: 'valid-token',
|
|
122
|
-
customer_id: 'app-org-123'
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
// Helper function to setup authorization mocks to pass
|
|
128
|
-
const setupAuthMocks = () => {
|
|
129
|
-
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
130
|
-
mockGetAppContext.mockReturnValue({
|
|
131
|
-
account: {
|
|
132
|
-
organizationId: 'app-org-123'
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
};
|
|
136
82
|
describe('/ready endpoint', () => {
|
|
137
|
-
beforeEach(() => {
|
|
138
|
-
setupAuthMocks();
|
|
139
|
-
});
|
|
140
83
|
it('should return ready: true when ready method returns true', async () => {
|
|
141
84
|
// Arrange
|
|
142
|
-
const readyRequest =
|
|
85
|
+
const readyRequest = {
|
|
86
|
+
headers: new Map(),
|
|
87
|
+
method: 'GET',
|
|
88
|
+
path: '/ready'
|
|
89
|
+
};
|
|
143
90
|
toolFunction = new TestToolFunction(readyRequest);
|
|
144
91
|
toolFunction.getMockReady().mockResolvedValue(true);
|
|
145
92
|
// Act
|
|
@@ -151,7 +98,11 @@ describe('ToolFunction', () => {
|
|
|
151
98
|
});
|
|
152
99
|
it('should return ready: false when ready method returns false', async () => {
|
|
153
100
|
// Arrange
|
|
154
|
-
const readyRequest =
|
|
101
|
+
const readyRequest = {
|
|
102
|
+
headers: new Map(),
|
|
103
|
+
method: 'GET',
|
|
104
|
+
path: '/ready'
|
|
105
|
+
};
|
|
155
106
|
toolFunction = new TestToolFunction(readyRequest);
|
|
156
107
|
toolFunction.getMockReady().mockResolvedValue(false);
|
|
157
108
|
// Act
|
|
@@ -163,7 +114,11 @@ describe('ToolFunction', () => {
|
|
|
163
114
|
});
|
|
164
115
|
it('should handle ready method throwing an error', async () => {
|
|
165
116
|
// Arrange
|
|
166
|
-
const readyRequest =
|
|
117
|
+
const readyRequest = {
|
|
118
|
+
headers: new Map(),
|
|
119
|
+
method: 'GET',
|
|
120
|
+
path: '/ready'
|
|
121
|
+
};
|
|
167
122
|
toolFunction = new TestToolFunction(readyRequest);
|
|
168
123
|
toolFunction.getMockReady().mockRejectedValue(new Error('Ready check failed'));
|
|
169
124
|
// Act & Assert
|
|
@@ -171,6 +126,46 @@ describe('ToolFunction', () => {
|
|
|
171
126
|
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
172
127
|
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
173
128
|
});
|
|
129
|
+
it('should handle /ready endpoint after bearer token validation passes', async () => {
|
|
130
|
+
// Arrange
|
|
131
|
+
const readyRequest = {
|
|
132
|
+
headers: new Map([['authorization', 'Bearer valid-token']]),
|
|
133
|
+
method: 'GET',
|
|
134
|
+
path: '/ready'
|
|
135
|
+
};
|
|
136
|
+
toolFunction = new TestToolFunction(readyRequest);
|
|
137
|
+
toolFunction.getMockReady().mockResolvedValue(true);
|
|
138
|
+
mockExtractBearerToken.mockReturnValue('valid-token');
|
|
139
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(true); // Make sure auth passes so we reach /ready
|
|
140
|
+
// Act
|
|
141
|
+
const result = await toolFunction.perform();
|
|
142
|
+
// Assert
|
|
143
|
+
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
144
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
145
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(readyRequest.headers); // Auth is checked first
|
|
146
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith('valid-token'); // Auth validation happens
|
|
147
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
148
|
+
});
|
|
149
|
+
it('should return 403 when bearer token validation fails even for /ready endpoint', async () => {
|
|
150
|
+
// Arrange
|
|
151
|
+
const readyRequest = {
|
|
152
|
+
headers: new Map([['authorization', 'Bearer invalid-token']]),
|
|
153
|
+
method: 'GET',
|
|
154
|
+
path: '/ready'
|
|
155
|
+
};
|
|
156
|
+
toolFunction = new TestToolFunction(readyRequest);
|
|
157
|
+
toolFunction.getMockReady().mockResolvedValue(true);
|
|
158
|
+
mockExtractBearerToken.mockReturnValue('invalid-token');
|
|
159
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(false); // Auth fails
|
|
160
|
+
// Act
|
|
161
|
+
const result = await toolFunction.perform();
|
|
162
|
+
// Assert
|
|
163
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
164
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(readyRequest.headers);
|
|
165
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith('invalid-token');
|
|
166
|
+
expect(toolFunction.getMockReady()).not.toHaveBeenCalled(); // Should not reach ready check
|
|
167
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
168
|
+
});
|
|
174
169
|
it('should use default ready implementation when not overridden', async () => {
|
|
175
170
|
// Create a class that doesn't override ready method
|
|
176
171
|
class DefaultReadyToolFunction extends ToolFunction_1.ToolFunction {
|
|
@@ -183,7 +178,11 @@ describe('ToolFunction', () => {
|
|
|
183
178
|
}
|
|
184
179
|
}
|
|
185
180
|
// Arrange
|
|
186
|
-
const readyRequest =
|
|
181
|
+
const readyRequest = {
|
|
182
|
+
headers: new Map(),
|
|
183
|
+
method: 'GET',
|
|
184
|
+
path: '/ready'
|
|
185
|
+
};
|
|
187
186
|
const defaultToolFunction = new DefaultReadyToolFunction(readyRequest);
|
|
188
187
|
// Act
|
|
189
188
|
const result = await defaultToolFunction.perform();
|
|
@@ -192,112 +191,132 @@ describe('ToolFunction', () => {
|
|
|
192
191
|
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
193
192
|
});
|
|
194
193
|
});
|
|
195
|
-
describe('
|
|
196
|
-
it('should
|
|
197
|
-
//
|
|
198
|
-
|
|
194
|
+
describe('bearer token validation', () => {
|
|
195
|
+
it('should extract bearer token from headers and validate it', async () => {
|
|
196
|
+
// Arrange
|
|
197
|
+
const bearerToken = 'valid-token-123';
|
|
198
|
+
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
199
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
199
200
|
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
201
|
+
// Act
|
|
200
202
|
const result = await toolFunction.perform();
|
|
201
|
-
|
|
202
|
-
expect(
|
|
203
|
-
expect(
|
|
204
|
-
expect(mockGetAppContext).toHaveBeenCalled();
|
|
203
|
+
// Assert
|
|
204
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
205
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
205
206
|
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
207
|
+
expect(result).toBe(mockResponse);
|
|
206
208
|
});
|
|
207
|
-
it('should return 403
|
|
208
|
-
//
|
|
209
|
-
|
|
209
|
+
it('should return 403 Forbidden when bearer token validation fails', async () => {
|
|
210
|
+
// Arrange
|
|
211
|
+
const bearerToken = 'invalid-token-456';
|
|
212
|
+
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
213
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(false);
|
|
214
|
+
// Act
|
|
210
215
|
const result = await toolFunction.perform();
|
|
211
|
-
|
|
212
|
-
expect(
|
|
213
|
-
expect(
|
|
216
|
+
// Assert
|
|
217
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
218
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
214
219
|
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
215
|
-
});
|
|
216
|
-
it('should return 403 response when organization ID does not match', async () => {
|
|
217
|
-
// Update mock request with different customer_id
|
|
218
|
-
const requestWithDifferentOrgId = {
|
|
219
|
-
...mockRequest,
|
|
220
|
-
bodyJSON: {
|
|
221
|
-
...mockRequest.bodyJSON,
|
|
222
|
-
auth: {
|
|
223
|
-
...mockRequest.bodyJSON.auth,
|
|
224
|
-
credentials: {
|
|
225
|
-
...mockRequest.bodyJSON.auth.credentials,
|
|
226
|
-
customer_id: 'different-org-123'
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
const toolFunctionWithDifferentOrgId = new TestToolFunction(requestWithDifferentOrgId);
|
|
232
|
-
const result = await toolFunctionWithDifferentOrgId.perform();
|
|
233
220
|
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
234
|
-
expect(mockGetAppContext).toHaveBeenCalled();
|
|
235
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
236
221
|
});
|
|
237
|
-
it('should
|
|
238
|
-
//
|
|
239
|
-
const
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
};
|
|
252
|
-
const toolFunctionWithoutToken = new TestToolFunction(requestWithoutToken);
|
|
253
|
-
const result = await toolFunctionWithoutToken.perform();
|
|
254
|
-
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
255
|
-
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
256
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
222
|
+
it('should handle complex bearer token validation scenarios', async () => {
|
|
223
|
+
// Arrange - simulate a token that should be valid based on some complex logic
|
|
224
|
+
const complexToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9l' +
|
|
225
|
+
'IiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
|
|
226
|
+
mockExtractBearerToken.mockReturnValue(complexToken);
|
|
227
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
228
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
229
|
+
// Act
|
|
230
|
+
const result = await toolFunction.perform();
|
|
231
|
+
// Assert
|
|
232
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
233
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(complexToken);
|
|
234
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
235
|
+
expect(result).toBe(mockResponse);
|
|
257
236
|
});
|
|
258
|
-
it('should
|
|
259
|
-
//
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
const toolFunctionWithoutCustomerId = new TestToolFunction(requestWithoutCustomerId);
|
|
274
|
-
const result = await toolFunctionWithoutCustomerId.perform();
|
|
275
|
-
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
276
|
-
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
237
|
+
it('should handle bearer token validation throwing an error', async () => {
|
|
238
|
+
// Arrange
|
|
239
|
+
const bearerToken = 'malformed-token';
|
|
240
|
+
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
241
|
+
toolFunction.getMockValidateBearerToken().mockImplementation(() => {
|
|
242
|
+
throw new Error('Token validation error');
|
|
243
|
+
});
|
|
244
|
+
// Act & Assert
|
|
245
|
+
await expect(toolFunction.perform()).rejects.toThrow('Token validation error');
|
|
246
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
247
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
277
248
|
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
278
249
|
});
|
|
279
|
-
it('should
|
|
280
|
-
//
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
250
|
+
it('should call validateBearerToken only once per request', async () => {
|
|
251
|
+
// Arrange
|
|
252
|
+
const bearerToken = 'test-token';
|
|
253
|
+
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
254
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
255
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
256
|
+
// Act
|
|
257
|
+
await toolFunction.perform();
|
|
258
|
+
// Assert
|
|
259
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledTimes(1);
|
|
260
|
+
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
261
|
+
});
|
|
262
|
+
it('should extract bearer token only once per request', async () => {
|
|
263
|
+
// Arrange
|
|
264
|
+
const bearerToken = 'test-token';
|
|
265
|
+
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
266
|
+
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
267
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
268
|
+
// Act
|
|
269
|
+
await toolFunction.perform();
|
|
270
|
+
// Assert
|
|
271
|
+
expect(mockExtractBearerToken).toHaveBeenCalledTimes(1);
|
|
272
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
273
|
+
});
|
|
274
|
+
it('should skip validation when bearer token is undefined', async () => {
|
|
275
|
+
// Arrange
|
|
276
|
+
mockExtractBearerToken.mockReturnValue(undefined);
|
|
277
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
278
|
+
// Act
|
|
279
|
+
const result = await toolFunction.perform();
|
|
280
|
+
// Assert
|
|
281
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
282
|
+
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
283
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
284
|
+
expect(result).toBe(mockResponse);
|
|
293
285
|
});
|
|
294
|
-
it('should
|
|
295
|
-
//
|
|
296
|
-
|
|
286
|
+
it('should skip validation when bearer token is empty string', async () => {
|
|
287
|
+
// Arrange
|
|
288
|
+
mockExtractBearerToken.mockReturnValue('');
|
|
289
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
290
|
+
// Act
|
|
297
291
|
const result = await toolFunction.perform();
|
|
298
|
-
|
|
299
|
-
expect(
|
|
300
|
-
expect(
|
|
292
|
+
// Assert
|
|
293
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
294
|
+
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
295
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
296
|
+
expect(result).toBe(mockResponse);
|
|
297
|
+
});
|
|
298
|
+
it('should use default validateBearerToken implementation when not overridden', async () => {
|
|
299
|
+
// Create a class that doesn't override validateBearerToken
|
|
300
|
+
class DefaultToolFunction extends ToolFunction_1.ToolFunction {
|
|
301
|
+
constructor(request) {
|
|
302
|
+
super(request || {});
|
|
303
|
+
this.request = request;
|
|
304
|
+
}
|
|
305
|
+
getRequest() {
|
|
306
|
+
return this.request;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
// Arrange
|
|
310
|
+
const defaultToolFunction = new DefaultToolFunction(mockRequest);
|
|
311
|
+
const bearerToken = 'any-token';
|
|
312
|
+
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
313
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
314
|
+
// Act
|
|
315
|
+
const result = await defaultToolFunction.perform();
|
|
316
|
+
// Assert - Default implementation should return true and allow request to proceed
|
|
317
|
+
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
318
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, defaultToolFunction);
|
|
319
|
+
expect(result).toBe(mockResponse);
|
|
301
320
|
});
|
|
302
321
|
});
|
|
303
322
|
describe('inheritance', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,6 @@ exports.InteractionResult = exports.Interaction = exports.Tool = void 0;
|
|
|
18
18
|
__exportStar(require("./function/ToolFunction"), exports);
|
|
19
19
|
__exportStar(require("./types/Models"), exports);
|
|
20
20
|
__exportStar(require("./decorator/Decorator"), exports);
|
|
21
|
-
__exportStar(require("./auth/TokenVerifier"), exports);
|
|
22
21
|
var Service_1 = require("./service/Service");
|
|
23
22
|
Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return Service_1.Tool; } });
|
|
24
23
|
Object.defineProperty(exports, "Interaction", { enumerable: true, get: function () { return Service_1.Interaction; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,wDAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,wDAAsC;AACtC,6CAAyE;AAAhE,+FAAA,IAAI,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}
|
|
@@ -27,7 +27,7 @@ export declare class Tool<TAuthData> {
|
|
|
27
27
|
parameters: Parameter[];
|
|
28
28
|
endpoint: string;
|
|
29
29
|
handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>;
|
|
30
|
-
authRequirements
|
|
30
|
+
authRequirements?: AuthRequirement[] | undefined;
|
|
31
31
|
/**
|
|
32
32
|
* HTTP method for the endpoint (default: POST)
|
|
33
33
|
*/
|
|
@@ -39,9 +39,9 @@ export declare class Tool<TAuthData> {
|
|
|
39
39
|
* @param parameters Function parameters
|
|
40
40
|
* @param endpoint API endpoint
|
|
41
41
|
* @param handler Function implementing the tool
|
|
42
|
-
* @param authRequirements Authentication requirements (
|
|
42
|
+
* @param authRequirements Authentication requirements (optional)
|
|
43
43
|
*/
|
|
44
|
-
constructor(name: string, description: string, parameters: Parameter[], endpoint: string, handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>, authRequirements?: AuthRequirement[]);
|
|
44
|
+
constructor(name: string, description: string, parameters: Parameter[], endpoint: string, handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>, authRequirements?: AuthRequirement[] | undefined);
|
|
45
45
|
/**
|
|
46
46
|
* Convert to JSON for the discovery endpoint
|
|
47
47
|
*/
|
|
@@ -51,11 +51,11 @@ export declare class ToolsService {
|
|
|
51
51
|
private functions;
|
|
52
52
|
private interactions;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
* @param
|
|
56
|
-
* @returns
|
|
54
|
+
* Extract Bearer token from Authorization header
|
|
55
|
+
* @param headers Request headers (Map-like object or Headers object with get method)
|
|
56
|
+
* @returns Bearer token string or undefined
|
|
57
57
|
*/
|
|
58
|
-
|
|
58
|
+
extractBearerToken(headers: App.Headers): string | undefined;
|
|
59
59
|
/**
|
|
60
60
|
* Register a tool function with generic auth data
|
|
61
61
|
* @param name Tool name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAiB;IAEnB,OAAO,EAAE,MAAM;IACf,IAAI,CAAC,EAAE,MAAM;gBADb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,YAAA;CAEvB;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,SAAS;IAEvB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;gBAF3G,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;CAErH;AAED;;GAEG;AACH,qBAAa,IAAI,CAAC,SAAS;IAgBhB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,SAAS,EAAE;IACvB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC;IACnG,gBAAgB,CAAC,EAAE,eAAe,EAAE;IApB7C;;OAEG;IACI,UAAU,EAAE,MAAM,CAAU;IAEnC;;;;;;;;OAQG;gBAEM,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACnG,gBAAgB,CAAC,EAAE,eAAe,EAAE,YAAA;IAG7C;;OAEG;IACI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAezC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAA4C;IAEhE;;;;OAIG;IACI,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS;IAUnE;;;;;;;;OAQG;IACI,YAAY,CAAC,SAAS,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACnG,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,IAAI;IAKP;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC,EAC3G,QAAQ,EAAE,MAAM,GACf,IAAI;IAKM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;CAiDlF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|