@dainprotocol/service-sdk 2.0.6 → 2.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.
Files changed (74) hide show
  1. package/dist/client/client-auth.d.ts +8 -0
  2. package/dist/client/client-auth.js +23 -0
  3. package/dist/client/client-auth.js.map +1 -1
  4. package/dist/client/types.d.ts +3 -0
  5. package/dist/client/types.js +1 -0
  6. package/dist/client/types.js.map +1 -1
  7. package/dist/service/types.d.ts +1 -0
  8. package/package.json +1 -1
  9. package/dist/__tests__/api-sdk.test.d.ts +0 -1
  10. package/dist/__tests__/api-sdk.test.js +0 -102
  11. package/dist/__tests__/api-sdk.test.js.map +0 -1
  12. package/dist/__tests__/auth.test.d.ts +0 -1
  13. package/dist/__tests__/auth.test.js +0 -110
  14. package/dist/__tests__/auth.test.js.map +0 -1
  15. package/dist/__tests__/citations-plugin.test.d.ts +0 -1
  16. package/dist/__tests__/citations-plugin.test.js +0 -491
  17. package/dist/__tests__/citations-plugin.test.js.map +0 -1
  18. package/dist/__tests__/context-behavior.test.d.ts +0 -1
  19. package/dist/__tests__/context-behavior.test.js +0 -290
  20. package/dist/__tests__/context-behavior.test.js.map +0 -1
  21. package/dist/__tests__/convertToVercelTool.test.d.ts +0 -1
  22. package/dist/__tests__/convertToVercelTool.test.js +0 -527
  23. package/dist/__tests__/convertToVercelTool.test.js.map +0 -1
  24. package/dist/__tests__/core.test.d.ts +0 -1
  25. package/dist/__tests__/core.test.js +0 -154
  26. package/dist/__tests__/core.test.js.map +0 -1
  27. package/dist/__tests__/crypto-plugin.test.d.ts +0 -1
  28. package/dist/__tests__/crypto-plugin.test.js +0 -694
  29. package/dist/__tests__/crypto-plugin.test.js.map +0 -1
  30. package/dist/__tests__/humanActions.test.d.ts +0 -1
  31. package/dist/__tests__/humanActions.test.js +0 -221
  32. package/dist/__tests__/humanActions.test.js.map +0 -1
  33. package/dist/__tests__/integration.test.d.ts +0 -1
  34. package/dist/__tests__/integration.test.js +0 -1573
  35. package/dist/__tests__/integration.test.js.map +0 -1
  36. package/dist/__tests__/mealMeSchemas.test.d.ts +0 -576
  37. package/dist/__tests__/mealMeSchemas.test.js +0 -627
  38. package/dist/__tests__/mealMeSchemas.test.js.map +0 -1
  39. package/dist/__tests__/oauth.test.d.ts +0 -1
  40. package/dist/__tests__/oauth.test.js +0 -378
  41. package/dist/__tests__/oauth.test.js.map +0 -1
  42. package/dist/__tests__/oauth2-client-integration.test.d.ts +0 -1
  43. package/dist/__tests__/oauth2-client-integration.test.js +0 -182
  44. package/dist/__tests__/oauth2-client-integration.test.js.map +0 -1
  45. package/dist/__tests__/oauth2-context.test.d.ts +0 -1
  46. package/dist/__tests__/oauth2-context.test.js +0 -201
  47. package/dist/__tests__/oauth2-context.test.js.map +0 -1
  48. package/dist/__tests__/oauth2-datasource.test.d.ts +0 -1
  49. package/dist/__tests__/oauth2-datasource.test.js +0 -251
  50. package/dist/__tests__/oauth2-datasource.test.js.map +0 -1
  51. package/dist/__tests__/plugin.test.d.ts +0 -1
  52. package/dist/__tests__/plugin.test.js +0 -900
  53. package/dist/__tests__/plugin.test.js.map +0 -1
  54. package/dist/__tests__/processes.test.d.ts +0 -1
  55. package/dist/__tests__/processes.test.js +0 -239
  56. package/dist/__tests__/processes.test.js.map +0 -1
  57. package/dist/__tests__/streaming.test.d.ts +0 -1
  58. package/dist/__tests__/streaming.test.js +0 -592
  59. package/dist/__tests__/streaming.test.js.map +0 -1
  60. package/dist/__tests__/testEnums.d.ts +0 -1
  61. package/dist/__tests__/testEnums.js +0 -73
  62. package/dist/__tests__/testEnums.js.map +0 -1
  63. package/dist/__tests__/testOptionals.test.d.ts +0 -1
  64. package/dist/__tests__/testOptionals.test.js +0 -83
  65. package/dist/__tests__/testOptionals.test.js.map +0 -1
  66. package/dist/__tests__/types.test.d.ts +0 -1
  67. package/dist/__tests__/types.test.js +0 -98
  68. package/dist/__tests__/types.test.js.map +0 -1
  69. package/dist/client/service-auth.d.ts +0 -61
  70. package/dist/client/service-auth.js +0 -93
  71. package/dist/client/service-auth.js.map +0 -1
  72. package/dist/client/user-auth.d.ts +0 -74
  73. package/dist/client/user-auth.js +0 -137
  74. package/dist/client/user-auth.js.map +0 -1
@@ -1,201 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const zod_1 = require("zod");
5
- const nodeService_1 = require("../service/nodeService");
6
- const core_1 = require("../service/core");
7
- const ed25519_1 = require("@noble/curves/ed25519");
8
- const bs58_1 = tslib_1.__importDefault(require("bs58"));
9
- const client_auth_1 = require("../client/client-auth");
10
- const client_1 = require("../client/client");
11
- const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
12
- describe("OAuth2Client in Context", () => {
13
- let server;
14
- const port = 4592; // Different port to avoid conflicts
15
- // Generate keys for the service
16
- const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
17
- const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
18
- // Generate keys for the client
19
- const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
20
- const agentAuth = new client_auth_1.DainClientAuth({
21
- privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
22
- agentId: "oauth2-context-test-agent",
23
- orgId: "oauth2-context-test-org",
24
- });
25
- let dainConnection;
26
- // Track oauth2Client details
27
- const oauth2ClientInfo = {
28
- wasPresent: false,
29
- hadGetAccessTokenMethod: false,
30
- hadGetValidTokenMethod: false,
31
- methodsFound: [],
32
- callCount: 0
33
- };
34
- // Create a context that verifies oauth2Client
35
- const oauth2VerifyContext = (0, core_1.createContext)({
36
- id: "oauth2-verify-context",
37
- name: "OAuth2 Verify Context",
38
- description: "Context that verifies oauth2Client is passed",
39
- getContextData: async (agentInfo, extraData) => {
40
- oauth2ClientInfo.callCount++;
41
- // Check if oauth2Client is present
42
- oauth2ClientInfo.wasPresent = !!extraData?.oauth2Client;
43
- if (extraData?.oauth2Client) {
44
- // Get all property names including methods from the prototype
45
- const allProps = [...Object.keys(extraData.oauth2Client)];
46
- const prototypeMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(extraData.oauth2Client));
47
- oauth2ClientInfo.methodsFound = [...new Set([...allProps, ...prototypeMethods])].filter(m => m !== 'constructor');
48
- // Check for expected methods
49
- oauth2ClientInfo.hadGetAccessTokenMethod = typeof extraData.oauth2Client.getAccessToken === 'function';
50
- oauth2ClientInfo.hadGetValidTokenMethod = typeof extraData.oauth2Client.getValidToken === 'function';
51
- console.log("OAuth2Client detected with methods:", oauth2ClientInfo.methodsFound);
52
- }
53
- else {
54
- console.log("No OAuth2Client in extraData");
55
- }
56
- return {
57
- oauth2ClientPresent: oauth2ClientInfo.wasPresent,
58
- oauth2ClientMethods: oauth2ClientInfo.methodsFound,
59
- hasGetAccessToken: oauth2ClientInfo.hadGetAccessTokenMethod,
60
- hasGetValidToken: oauth2ClientInfo.hadGetValidTokenMethod,
61
- callCount: oauth2ClientInfo.callCount
62
- };
63
- }
64
- });
65
- // Create a simple tool
66
- const testTool = (0, core_1.createTool)({
67
- id: "oauth2-test-tool",
68
- name: "OAuth2 Test Tool",
69
- description: "Tool for testing oauth2 context",
70
- input: zod_1.z.object({
71
- message: zod_1.z.string()
72
- }),
73
- output: zod_1.z.object({
74
- result: zod_1.z.string()
75
- }),
76
- handler: async (input) => {
77
- return {
78
- text: `Processed: ${input.message}`,
79
- data: {
80
- result: `Executed: ${input.message}`
81
- },
82
- ui: undefined
83
- };
84
- }
85
- });
86
- const dainService = (0, nodeService_1.defineDAINService)({
87
- metadata: {
88
- title: "OAuth2 Context Test",
89
- description: "Testing oauth2Client in contexts",
90
- version: "1.0.0",
91
- author: "Test",
92
- tags: ["test", "oauth2", "context"]
93
- },
94
- identity: {
95
- publicKey: bs58_1.default.encode(publicKey),
96
- privateKey: bs58_1.default.encode(privateKey),
97
- agentId: "test-oauth2-service-agent",
98
- orgId: "test-oauth2-service-org"
99
- },
100
- // Configure OAuth2
101
- oauth2: {
102
- baseUrl: `http://localhost:${port}`,
103
- providers: {
104
- test: {
105
- clientId: "test-client-id",
106
- clientSecret: "test-client-secret",
107
- authorizationUrl: "https://example.com/oauth/authorize",
108
- tokenUrl: "https://example.com/oauth/token",
109
- scopes: ["read", "write"]
110
- }
111
- },
112
- tokenStore: new oauth2_token_manager_1.InMemoryStorageAdapter()
113
- },
114
- tools: [testTool],
115
- contexts: [oauth2VerifyContext]
116
- });
117
- beforeAll(async () => {
118
- // Reset tracking
119
- oauth2ClientInfo.wasPresent = false;
120
- oauth2ClientInfo.hadGetAccessTokenMethod = false;
121
- oauth2ClientInfo.hadGetValidTokenMethod = false;
122
- oauth2ClientInfo.methodsFound = [];
123
- oauth2ClientInfo.callCount = 0;
124
- server = await dainService.startNode({ port });
125
- dainConnection = new client_1.DainServiceConnection(`http://localhost:${port}`, agentAuth);
126
- });
127
- afterAll(async () => {
128
- if (server && server.shutdown) {
129
- await server.shutdown();
130
- }
131
- });
132
- beforeEach(() => {
133
- // Reset tracking before each test
134
- oauth2ClientInfo.wasPresent = false;
135
- oauth2ClientInfo.hadGetAccessTokenMethod = false;
136
- oauth2ClientInfo.hadGetValidTokenMethod = false;
137
- oauth2ClientInfo.methodsFound = [];
138
- oauth2ClientInfo.callCount = 0;
139
- });
140
- describe("OAuth2Client availability in context", () => {
141
- it("should pass oauth2Client to context when OAuth2 is configured", async () => {
142
- const contexts = await dainConnection.getAllContexts();
143
- expect(contexts).toHaveLength(1);
144
- expect(contexts[0].id).toBe("oauth2-verify-context");
145
- // Verify oauth2Client was passed
146
- expect(oauth2ClientInfo.wasPresent).toBe(true);
147
- expect(contexts[0].data.oauth2ClientPresent).toBe(true);
148
- });
149
- it("should provide oauth2Client with expected methods", async () => {
150
- const contexts = await dainConnection.getAllContexts();
151
- // Check that oauth2Client has the expected methods
152
- expect(oauth2ClientInfo.hadGetAccessTokenMethod).toBe(true);
153
- expect(oauth2ClientInfo.hadGetValidTokenMethod).toBe(true);
154
- // Verify through the returned data
155
- expect(contexts[0].data.hasGetAccessToken).toBe(true);
156
- expect(contexts[0].data.hasGetValidToken).toBe(true);
157
- // Check that methods array contains expected methods
158
- expect(oauth2ClientInfo.methodsFound).toContain('getAccessToken');
159
- expect(oauth2ClientInfo.methodsFound).toContain('getValidToken');
160
- });
161
- it("should pass oauth2Client when using callToolAndGetNewContext", async () => {
162
- const result = await dainConnection.callToolAndGetNewContext("oauth2-test-tool", {
163
- message: "Testing with OAuth2"
164
- });
165
- // Verify tool executed
166
- expect(result.toolResult.text).toBe("Processed: Testing with OAuth2");
167
- // Verify context was called with oauth2Client
168
- expect(oauth2ClientInfo.wasPresent).toBe(true);
169
- expect(result.context[0].data.oauth2ClientPresent).toBe(true);
170
- expect(result.context[0].data.hasGetAccessToken).toBe(true);
171
- expect(result.context[0].data.hasGetValidToken).toBe(true);
172
- });
173
- it("should consistently pass oauth2Client across multiple context calls", async () => {
174
- // Reset counter
175
- oauth2ClientInfo.callCount = 0;
176
- // Make multiple calls
177
- await dainConnection.getAllContexts();
178
- await dainConnection.callToolAndGetNewContext("oauth2-test-tool", { message: "call 1" });
179
- await dainConnection.getAllContexts();
180
- // Should have been called 3 times
181
- expect(oauth2ClientInfo.callCount).toBe(3);
182
- // OAuth2Client should have been present in all calls
183
- // (we only track the last state, but if it's true after 3 calls, it was passed)
184
- expect(oauth2ClientInfo.wasPresent).toBe(true);
185
- });
186
- });
187
- describe("OAuth2Client methods accessibility", () => {
188
- it("should provide a functional oauth2Client object", async () => {
189
- const contexts = await dainConnection.getAllContexts();
190
- // The context should report having the oauth2Client
191
- expect(contexts[0].data.oauth2ClientPresent).toBe(true);
192
- // Verify the methods are actually functions (checked in our context)
193
- expect(contexts[0].data.hasGetAccessToken).toBe(true);
194
- expect(contexts[0].data.hasGetValidToken).toBe(true);
195
- // Verify we found multiple methods (should be more than just 2)
196
- expect(oauth2ClientInfo.methodsFound.length).toBeGreaterThan(0);
197
- expect(oauth2ClientInfo.methodsFound).toEqual(expect.arrayContaining(['getAccessToken', 'getValidToken']));
198
- });
199
- });
200
- });
201
- //# sourceMappingURL=oauth2-context.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-context.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-context.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,251 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const zod_1 = require("zod");
5
- const nodeService_1 = require("../service/nodeService");
6
- const core_1 = require("../service/core");
7
- const ed25519_1 = require("@noble/curves/ed25519");
8
- const bs58_1 = tslib_1.__importDefault(require("bs58"));
9
- const client_auth_1 = require("../client/client-auth");
10
- const client_1 = require("../client/client");
11
- const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
12
- describe("OAuth2Client in Datasources", () => {
13
- let server;
14
- const port = 4593; // Different port to avoid conflicts
15
- // Generate keys for the service
16
- const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
17
- const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
18
- // Generate keys for the client
19
- const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
20
- const agentAuth = new client_auth_1.DainClientAuth({
21
- privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
22
- agentId: "oauth2-datasource-test-agent",
23
- orgId: "oauth2-datasource-test-org",
24
- });
25
- let dainConnection;
26
- // Track oauth2Client details in datasources
27
- const datasourceOAuth2Info = {
28
- wasPresent: false,
29
- hadGetAccessTokenMethod: false,
30
- hadGetValidTokenMethod: false,
31
- methodsFound: [],
32
- callCount: 0,
33
- lastParams: null
34
- };
35
- // Create a simple dummy tool (required for service)
36
- const dummyTool = (0, core_1.createTool)({
37
- id: "dummy-tool",
38
- name: "Dummy Tool",
39
- description: "A dummy tool required for the service",
40
- input: zod_1.z.object({
41
- message: zod_1.z.string()
42
- }),
43
- output: zod_1.z.object({
44
- result: zod_1.z.string()
45
- }),
46
- handler: async (input) => {
47
- return {
48
- text: `Dummy response: ${input.message}`,
49
- data: {
50
- result: `Processed: ${input.message}`
51
- },
52
- ui: undefined
53
- };
54
- }
55
- });
56
- // Create a datasource that verifies oauth2Client
57
- const oauth2VerifyDatasource = (0, core_1.createDatasource)({
58
- id: "oauth2-verify-datasource",
59
- name: "OAuth2 Verify Datasource",
60
- description: "Datasource that verifies oauth2Client is passed",
61
- type: "json",
62
- input: zod_1.z.object({
63
- testParam: zod_1.z.string().optional()
64
- }),
65
- getDatasource: async (agentInfo, params, extraData) => {
66
- datasourceOAuth2Info.callCount++;
67
- datasourceOAuth2Info.lastParams = params;
68
- // Check if oauth2Client is present
69
- datasourceOAuth2Info.wasPresent = !!extraData?.oauth2Client;
70
- if (extraData?.oauth2Client) {
71
- // Get all property names including methods from the prototype
72
- const allProps = [...Object.keys(extraData.oauth2Client)];
73
- const prototypeMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(extraData.oauth2Client));
74
- datasourceOAuth2Info.methodsFound = [...new Set([...allProps, ...prototypeMethods])].filter(m => m !== 'constructor');
75
- // Check for expected methods
76
- datasourceOAuth2Info.hadGetAccessTokenMethod = typeof extraData.oauth2Client.getAccessToken === 'function';
77
- datasourceOAuth2Info.hadGetValidTokenMethod = typeof extraData.oauth2Client.getValidToken === 'function';
78
- console.log("OAuth2Client detected in datasource with methods:", datasourceOAuth2Info.methodsFound);
79
- }
80
- else {
81
- console.log("No OAuth2Client in datasource extraData");
82
- }
83
- return {
84
- oauth2ClientPresent: datasourceOAuth2Info.wasPresent,
85
- oauth2ClientMethods: datasourceOAuth2Info.methodsFound,
86
- hasGetAccessToken: datasourceOAuth2Info.hadGetAccessTokenMethod,
87
- hasGetValidToken: datasourceOAuth2Info.hadGetValidTokenMethod,
88
- callCount: datasourceOAuth2Info.callCount,
89
- receivedParams: params
90
- };
91
- }
92
- });
93
- // Test without OAuth2 configured
94
- describe("Without OAuth2 configuration", () => {
95
- beforeAll(async () => {
96
- // Reset tracking
97
- datasourceOAuth2Info.wasPresent = false;
98
- datasourceOAuth2Info.hadGetAccessTokenMethod = false;
99
- datasourceOAuth2Info.hadGetValidTokenMethod = false;
100
- datasourceOAuth2Info.methodsFound = [];
101
- datasourceOAuth2Info.callCount = 0;
102
- datasourceOAuth2Info.lastParams = null;
103
- const serviceWithoutOAuth2 = (0, nodeService_1.defineDAINService)({
104
- metadata: {
105
- title: "Datasource OAuth2 Test (No OAuth2)",
106
- description: "Testing oauth2Client in datasources without OAuth2",
107
- version: "1.0.0",
108
- author: "Test",
109
- tags: ["test", "datasource", "no-oauth2"]
110
- },
111
- identity: {
112
- publicKey: bs58_1.default.encode(publicKey),
113
- privateKey: bs58_1.default.encode(privateKey),
114
- agentId: "test-datasource-service-agent",
115
- orgId: "test-datasource-service-org"
116
- },
117
- datasources: [oauth2VerifyDatasource],
118
- tools: [dummyTool] // At least one tool is required
119
- });
120
- server = await serviceWithoutOAuth2.startNode({ port });
121
- dainConnection = new client_1.DainServiceConnection(`http://localhost:${port}`, agentAuth);
122
- });
123
- afterAll(async () => {
124
- if (server && server.shutdown) {
125
- await server.shutdown();
126
- }
127
- });
128
- it("should pass undefined oauth2Client when OAuth2 is not configured", async () => {
129
- const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {
130
- testParam: "test without oauth2"
131
- });
132
- expect(datasourceData.id).toBe("oauth2-verify-datasource");
133
- expect(datasourceOAuth2Info.wasPresent).toBe(false);
134
- expect(datasourceData.data.oauth2ClientPresent).toBe(false);
135
- expect(datasourceData.data.receivedParams.testParam).toBe("test without oauth2");
136
- });
137
- });
138
- // Test with OAuth2 configured
139
- describe("With OAuth2 configuration", () => {
140
- beforeAll(async () => {
141
- // Shutdown previous server if running
142
- if (server && server.shutdown) {
143
- await server.shutdown();
144
- }
145
- // Reset tracking
146
- datasourceOAuth2Info.wasPresent = false;
147
- datasourceOAuth2Info.hadGetAccessTokenMethod = false;
148
- datasourceOAuth2Info.hadGetValidTokenMethod = false;
149
- datasourceOAuth2Info.methodsFound = [];
150
- datasourceOAuth2Info.callCount = 0;
151
- datasourceOAuth2Info.lastParams = null;
152
- const serviceWithOAuth2 = (0, nodeService_1.defineDAINService)({
153
- metadata: {
154
- title: "Datasource OAuth2 Test (With OAuth2)",
155
- description: "Testing oauth2Client in datasources with OAuth2",
156
- version: "1.0.0",
157
- author: "Test",
158
- tags: ["test", "datasource", "oauth2"]
159
- },
160
- identity: {
161
- publicKey: bs58_1.default.encode(publicKey),
162
- privateKey: bs58_1.default.encode(privateKey),
163
- agentId: "test-oauth2-datasource-agent",
164
- orgId: "test-oauth2-datasource-org"
165
- },
166
- // Configure OAuth2
167
- oauth2: {
168
- baseUrl: `http://localhost:${port}`,
169
- providers: {
170
- test: {
171
- clientId: "test-client-id",
172
- clientSecret: "test-client-secret",
173
- authorizationUrl: "https://example.com/oauth/authorize",
174
- tokenUrl: "https://example.com/oauth/token",
175
- scopes: ["read", "write"]
176
- }
177
- },
178
- tokenStore: new oauth2_token_manager_1.InMemoryStorageAdapter()
179
- },
180
- datasources: [oauth2VerifyDatasource],
181
- tools: [dummyTool] // At least one tool is required
182
- });
183
- server = await serviceWithOAuth2.startNode({ port: port + 1 }); // Use different port
184
- dainConnection = new client_1.DainServiceConnection(`http://localhost:${port + 1}`, agentAuth);
185
- });
186
- afterAll(async () => {
187
- if (server && server.shutdown) {
188
- await server.shutdown();
189
- }
190
- });
191
- beforeEach(() => {
192
- // Reset tracking before each test
193
- datasourceOAuth2Info.wasPresent = false;
194
- datasourceOAuth2Info.hadGetAccessTokenMethod = false;
195
- datasourceOAuth2Info.hadGetValidTokenMethod = false;
196
- datasourceOAuth2Info.methodsFound = [];
197
- datasourceOAuth2Info.callCount = 0;
198
- datasourceOAuth2Info.lastParams = null;
199
- });
200
- it("should pass oauth2Client to datasource when OAuth2 is configured", async () => {
201
- const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {
202
- testParam: "test with oauth2"
203
- });
204
- expect(datasourceData.id).toBe("oauth2-verify-datasource");
205
- // Verify oauth2Client was passed
206
- expect(datasourceOAuth2Info.wasPresent).toBe(true);
207
- expect(datasourceData.data.oauth2ClientPresent).toBe(true);
208
- expect(datasourceData.data.receivedParams.testParam).toBe("test with oauth2");
209
- });
210
- it("should provide oauth2Client with expected methods to datasource", async () => {
211
- const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {
212
- testParam: "test methods"
213
- });
214
- // Check that oauth2Client has the expected methods
215
- expect(datasourceOAuth2Info.hadGetAccessTokenMethod).toBe(true);
216
- expect(datasourceOAuth2Info.hadGetValidTokenMethod).toBe(true);
217
- // Verify through the returned data
218
- expect(datasourceData.data.hasGetAccessToken).toBe(true);
219
- expect(datasourceData.data.hasGetValidToken).toBe(true);
220
- // Check that methods array contains expected methods
221
- expect(datasourceOAuth2Info.methodsFound).toContain('getAccessToken');
222
- expect(datasourceOAuth2Info.methodsFound).toContain('getValidToken');
223
- });
224
- it("should pass oauth2Client on multiple datasource calls", async () => {
225
- // Reset counter
226
- datasourceOAuth2Info.callCount = 0;
227
- // Make multiple calls
228
- await dainConnection.getDatasource("oauth2-verify-datasource", { testParam: "call 1" });
229
- await dainConnection.getDatasource("oauth2-verify-datasource", { testParam: "call 2" });
230
- await dainConnection.getDatasource("oauth2-verify-datasource", { testParam: "call 3" });
231
- // Should have been called 3 times
232
- expect(datasourceOAuth2Info.callCount).toBe(3);
233
- // OAuth2Client should have been present in all calls
234
- expect(datasourceOAuth2Info.wasPresent).toBe(true);
235
- // Last params should be from the last call
236
- expect(datasourceOAuth2Info.lastParams.testParam).toBe("call 3");
237
- });
238
- it("should provide a functional oauth2Client object to datasource", async () => {
239
- const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {});
240
- // The datasource should report having the oauth2Client
241
- expect(datasourceData.data.oauth2ClientPresent).toBe(true);
242
- // Verify the methods are actually functions (checked in our datasource)
243
- expect(datasourceData.data.hasGetAccessToken).toBe(true);
244
- expect(datasourceData.data.hasGetValidToken).toBe(true);
245
- // Verify we found multiple methods
246
- expect(datasourceOAuth2Info.methodsFound.length).toBeGreaterThan(0);
247
- expect(datasourceOAuth2Info.methodsFound).toEqual(expect.arrayContaining(['getAccessToken', 'getValidToken']));
248
- });
249
- });
250
- });
251
- //# sourceMappingURL=oauth2-datasource.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-datasource.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-datasource.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};