promptfoo 0.100.3 → 0.100.5
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/package.json +20 -19
- package/dist/src/app/assets/{index-CTUbNoYk.js → index-DVXmxOKL.js} +253 -250
- package/dist/src/app/assets/{index.es-D3QM4dM5.js → index.es-CPd0hWI8.js} +1 -1
- package/dist/src/app/assets/{sync-Bkkellft.js → sync-Dr9NKr6x.js} +1 -1
- package/dist/src/app/index.html +1 -1
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +2 -1
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/generate/dataset.d.ts.map +1 -1
- package/dist/src/commands/generate/dataset.js +2 -1
- package/dist/src/commands/generate/dataset.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +1 -3
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/evaluator.js +1 -1
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +3 -3
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/providers/azure.d.ts.map +1 -1
- package/dist/src/providers/azure.js +8 -8
- package/dist/src/providers/azure.js.map +1 -1
- package/dist/src/providers/defaults.d.ts +5 -0
- package/dist/src/providers/defaults.d.ts.map +1 -1
- package/dist/src/providers/defaults.js +44 -16
- package/dist/src/providers/defaults.js.map +1 -1
- package/dist/src/providers/http.d.ts +36 -13
- package/dist/src/providers/http.d.ts.map +1 -1
- package/dist/src/providers/http.js +19 -8
- package/dist/src/providers/http.js.map +1 -1
- package/dist/src/providers/promptfoo.d.ts.map +1 -1
- package/dist/src/providers/promptfoo.js +7 -8
- package/dist/src/providers/promptfoo.js.map +1 -1
- package/dist/src/redteam/commands/generate.d.ts.map +1 -1
- package/dist/src/redteam/commands/generate.js +8 -5
- package/dist/src/redteam/commands/generate.js.map +1 -1
- package/dist/src/redteam/commands/init.js +3 -3
- package/dist/src/redteam/commands/init.js.map +1 -1
- package/dist/src/redteam/commands/run.d.ts.map +1 -1
- package/dist/src/redteam/commands/run.js +2 -1
- package/dist/src/redteam/commands/run.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +2 -0
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +2 -1
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/extraction/entities.d.ts.map +1 -1
- package/dist/src/redteam/extraction/entities.js +16 -9
- package/dist/src/redteam/extraction/entities.js.map +1 -1
- package/dist/src/redteam/extraction/purpose.d.ts.map +1 -1
- package/dist/src/redteam/extraction/purpose.js +11 -5
- package/dist/src/redteam/extraction/purpose.js.map +1 -1
- package/dist/src/redteam/index.js +1 -1
- package/dist/src/redteam/index.js.map +1 -1
- package/dist/src/redteam/plugins/base.js +2 -2
- package/dist/src/redteam/plugins/base.js.map +1 -1
- package/dist/src/redteam/plugins/crossSessionLeak.js +1 -1
- package/dist/src/redteam/plugins/crossSessionLeak.js.map +1 -1
- package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
- package/dist/src/redteam/providers/crescendo/index.js +14 -6
- package/dist/src/redteam/providers/crescendo/index.js.map +1 -1
- package/dist/src/redteam/providers/iterative.js +1 -1
- package/dist/src/redteam/providers/iterative.js.map +1 -1
- package/dist/src/redteam/providers/iterativeImage.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterativeImage.js +1 -1
- package/dist/src/redteam/providers/iterativeImage.js.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.js +1 -1
- package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
- package/dist/src/redteam/providers/shared.d.ts +13 -5
- package/dist/src/redteam/providers/shared.d.ts.map +1 -1
- package/dist/src/redteam/providers/shared.js +26 -3
- package/dist/src/redteam/providers/shared.js.map +1 -1
- package/dist/src/redteam/remoteGeneration.d.ts +1 -0
- package/dist/src/redteam/remoteGeneration.d.ts.map +1 -1
- package/dist/src/redteam/remoteGeneration.js +15 -0
- package/dist/src/redteam/remoteGeneration.js.map +1 -1
- package/dist/src/redteam/strategies/mathPrompt.d.ts.map +1 -1
- package/dist/src/redteam/strategies/mathPrompt.js +4 -1
- package/dist/src/redteam/strategies/mathPrompt.js.map +1 -1
- package/dist/src/redteam/strategies/multilingual.d.ts.map +1 -1
- package/dist/src/redteam/strategies/multilingual.js +5 -2
- package/dist/src/redteam/strategies/multilingual.js.map +1 -1
- package/dist/src/server/routes/configs.js +8 -2
- package/dist/src/server/routes/configs.js.map +1 -1
- package/dist/src/server/routes/eval.js +3 -0
- package/dist/src/server/routes/eval.js.map +1 -1
- package/dist/src/server/routes/providers.d.ts.map +1 -1
- package/dist/src/server/routes/providers.js +16 -13
- package/dist/src/server/routes/providers.js.map +1 -1
- package/dist/src/testCases.d.ts.map +1 -1
- package/dist/src/testCases.js +5 -1
- package/dist/src/testCases.js.map +1 -1
- package/dist/src/util/index.d.ts +1 -0
- package/dist/src/util/index.d.ts.map +1 -1
- package/dist/src/util/index.js +6 -0
- package/dist/src/util/index.js.map +1 -1
- package/dist/test/evaluator.test.js +40 -0
- package/dist/test/evaluator.test.js.map +1 -1
- package/dist/test/onboarding.test.js +7 -0
- package/dist/test/onboarding.test.js.map +1 -1
- package/dist/test/providers/azure.test.js +131 -0
- package/dist/test/providers/azure.test.js.map +1 -1
- package/dist/test/providers/http.test.js +241 -9
- package/dist/test/providers/http.test.js.map +1 -1
- package/dist/test/redteam/providers/shared.test.js +15 -8
- package/dist/test/redteam/providers/shared.test.js.map +1 -1
- package/dist/test/redteam/strategies/multilingual.test.js +11 -7
- package/dist/test/redteam/strategies/multilingual.test.js.map +1 -1
- package/dist/test/server/providers.test.js +55 -26
- package/dist/test/server/providers.test.js.map +1 -1
- package/dist/test/testCases.test.js +32 -0
- package/dist/test/testCases.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -19
|
@@ -416,6 +416,137 @@ describe('AzureOpenAiChatCompletionProvider', () => {
|
|
|
416
416
|
]);
|
|
417
417
|
});
|
|
418
418
|
});
|
|
419
|
+
describe('structured outputs', () => {
|
|
420
|
+
let provider;
|
|
421
|
+
beforeEach(() => {
|
|
422
|
+
provider = new azure_3.AzureChatCompletionProvider('test-deployment', {
|
|
423
|
+
config: {
|
|
424
|
+
apiHost: 'test.azure.com',
|
|
425
|
+
apiKey: 'test-key',
|
|
426
|
+
},
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
afterEach(() => {
|
|
430
|
+
jest.resetAllMocks();
|
|
431
|
+
});
|
|
432
|
+
it('should parse JSON response when prompt config specifies json_object format', async () => {
|
|
433
|
+
const mockResponse = {
|
|
434
|
+
id: 'mock-id',
|
|
435
|
+
object: 'chat.completion',
|
|
436
|
+
created: Date.now(),
|
|
437
|
+
model: 'gpt-4',
|
|
438
|
+
choices: [
|
|
439
|
+
{
|
|
440
|
+
index: 0,
|
|
441
|
+
message: {
|
|
442
|
+
role: 'assistant',
|
|
443
|
+
content: '{"result": 42, "explanation": "test"}',
|
|
444
|
+
},
|
|
445
|
+
finish_reason: 'stop',
|
|
446
|
+
},
|
|
447
|
+
],
|
|
448
|
+
usage: {
|
|
449
|
+
prompt_tokens: 10,
|
|
450
|
+
completion_tokens: 20,
|
|
451
|
+
total_tokens: 30,
|
|
452
|
+
},
|
|
453
|
+
};
|
|
454
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce({
|
|
455
|
+
data: mockResponse,
|
|
456
|
+
cached: false,
|
|
457
|
+
status: 200,
|
|
458
|
+
statusText: 'OK',
|
|
459
|
+
});
|
|
460
|
+
const result = await provider.callApi('test prompt', {
|
|
461
|
+
prompt: {
|
|
462
|
+
config: {
|
|
463
|
+
response_format: { type: 'json_object' },
|
|
464
|
+
},
|
|
465
|
+
label: 'test prompt',
|
|
466
|
+
raw: 'test prompt',
|
|
467
|
+
},
|
|
468
|
+
vars: {},
|
|
469
|
+
});
|
|
470
|
+
expect(result.output).toEqual({
|
|
471
|
+
result: 42,
|
|
472
|
+
explanation: 'test',
|
|
473
|
+
});
|
|
474
|
+
});
|
|
475
|
+
it('should handle invalid JSON when response format is specified', async () => {
|
|
476
|
+
const mockResponse = {
|
|
477
|
+
id: 'mock-id',
|
|
478
|
+
object: 'chat.completion',
|
|
479
|
+
created: Date.now(),
|
|
480
|
+
model: 'gpt-4',
|
|
481
|
+
choices: [
|
|
482
|
+
{
|
|
483
|
+
index: 0,
|
|
484
|
+
message: {
|
|
485
|
+
role: 'assistant',
|
|
486
|
+
content: 'Invalid JSON response',
|
|
487
|
+
},
|
|
488
|
+
finish_reason: 'stop',
|
|
489
|
+
},
|
|
490
|
+
],
|
|
491
|
+
usage: {
|
|
492
|
+
prompt_tokens: 10,
|
|
493
|
+
completion_tokens: 20,
|
|
494
|
+
total_tokens: 30,
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce({
|
|
498
|
+
data: mockResponse,
|
|
499
|
+
cached: false,
|
|
500
|
+
status: 200,
|
|
501
|
+
statusText: 'OK',
|
|
502
|
+
});
|
|
503
|
+
const result = await provider.callApi('test prompt', {
|
|
504
|
+
prompt: {
|
|
505
|
+
config: {
|
|
506
|
+
response_format: { type: 'json_object' },
|
|
507
|
+
},
|
|
508
|
+
label: 'test prompt',
|
|
509
|
+
raw: 'test prompt',
|
|
510
|
+
},
|
|
511
|
+
vars: {},
|
|
512
|
+
});
|
|
513
|
+
// Should still return the original string if JSON parsing fails
|
|
514
|
+
expect(result.output).toBe('Invalid JSON response');
|
|
515
|
+
});
|
|
516
|
+
it('should use correct API URL based on datasources config from prompt', async () => {
|
|
517
|
+
const mockResponse = {
|
|
518
|
+
id: 'mock-id',
|
|
519
|
+
choices: [
|
|
520
|
+
{
|
|
521
|
+
message: {
|
|
522
|
+
role: 'assistant',
|
|
523
|
+
content: 'test response',
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
],
|
|
527
|
+
usage: { total_tokens: 10, prompt_tokens: 5, completion_tokens: 5 },
|
|
528
|
+
};
|
|
529
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce({
|
|
530
|
+
data: mockResponse,
|
|
531
|
+
cached: false,
|
|
532
|
+
status: 200,
|
|
533
|
+
statusText: 'OK',
|
|
534
|
+
});
|
|
535
|
+
await provider.callApi('test prompt', {
|
|
536
|
+
prompt: {
|
|
537
|
+
config: {
|
|
538
|
+
dataSources: [{ type: 'test' }],
|
|
539
|
+
apiVersion: '2024-custom',
|
|
540
|
+
},
|
|
541
|
+
label: 'test prompt',
|
|
542
|
+
raw: 'test prompt',
|
|
543
|
+
},
|
|
544
|
+
vars: {},
|
|
545
|
+
});
|
|
546
|
+
// Verify the URL includes extensions and uses the custom API version
|
|
547
|
+
expect(jest.mocked(cache_1.fetchWithCache).mock.calls[0][0]).toContain('/extensions/chat/completions?api-version=2024-custom');
|
|
548
|
+
});
|
|
549
|
+
});
|
|
419
550
|
});
|
|
420
551
|
describe('AzureCompletionProvider', () => {
|
|
421
552
|
it('should handle basic completion with caching', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure.test.js","sourceRoot":"","sources":["../../../test/providers/azure.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"azure.test.js","sourceRoot":"","sources":["../../../test/providers/azure.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
8
8
|
const cache_1 = require("../../src/cache");
|
|
9
9
|
const esm_1 = require("../../src/esm");
|
|
10
10
|
const http_1 = require("../../src/providers/http");
|
|
11
|
+
const shared_1 = require("../../src/providers/shared");
|
|
11
12
|
const util_1 = require("../../src/util");
|
|
12
13
|
jest.mock('../../src/cache', () => ({
|
|
13
14
|
fetchWithCache: jest.fn(),
|
|
@@ -155,7 +156,7 @@ describe('HttpProvider', () => {
|
|
|
155
156
|
new http_1.HttpProvider(mockUrl, {
|
|
156
157
|
config: invalidConfig,
|
|
157
158
|
});
|
|
158
|
-
}).toThrow(
|
|
159
|
+
}).toThrow(/Expected object, received string/);
|
|
159
160
|
});
|
|
160
161
|
it('should return provider id and string representation', () => {
|
|
161
162
|
provider = new http_1.HttpProvider(mockUrl, {
|
|
@@ -813,19 +814,35 @@ describe('createTransformRequest', () => {
|
|
|
813
814
|
expect(result).toBe('test prompt');
|
|
814
815
|
});
|
|
815
816
|
it('should handle string templates', async () => {
|
|
816
|
-
const transform = await (0, http_1.createTransformRequest)('{"text":
|
|
817
|
+
const transform = await (0, http_1.createTransformRequest)('return {"text": prompt}');
|
|
817
818
|
const result = await transform('hello');
|
|
818
819
|
expect(result).toEqual({
|
|
819
820
|
text: 'hello',
|
|
820
821
|
});
|
|
821
822
|
});
|
|
822
|
-
it('should handle
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
823
|
+
it('should handle function-based request transform', async () => {
|
|
824
|
+
jest.clearAllMocks();
|
|
825
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
826
|
+
config: {
|
|
827
|
+
method: 'POST',
|
|
828
|
+
headers: { 'Content-Type': 'application/json' },
|
|
829
|
+
body: { key: 'value' },
|
|
830
|
+
transformRequest: (prompt) => ({ transformed: prompt.toUpperCase() }),
|
|
831
|
+
},
|
|
832
|
+
});
|
|
833
|
+
const mockResponse = {
|
|
834
|
+
data: JSON.stringify({ result: 'success' }),
|
|
835
|
+
status: 200,
|
|
836
|
+
statusText: 'OK',
|
|
837
|
+
cached: false,
|
|
838
|
+
};
|
|
839
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
840
|
+
await provider.callApi('test');
|
|
841
|
+
expect(cache_1.fetchWithCache).toHaveBeenCalledWith('http://test.com', {
|
|
842
|
+
method: 'POST',
|
|
843
|
+
headers: { 'content-type': 'application/json' },
|
|
844
|
+
body: JSON.stringify({ key: 'value', transformed: 'TEST' }),
|
|
845
|
+
}, shared_1.REQUEST_TIMEOUT_MS, 'text', undefined);
|
|
829
846
|
});
|
|
830
847
|
it('should throw error for unsupported transform type', async () => {
|
|
831
848
|
await expect((0, http_1.createTransformRequest)(123)).rejects.toThrow('Unsupported request transform type: number');
|
|
@@ -880,4 +897,219 @@ describe('determineRequestBody', () => {
|
|
|
880
897
|
expect(result).toEqual(['static', 'test prompt']);
|
|
881
898
|
});
|
|
882
899
|
});
|
|
900
|
+
describe('constructor validation', () => {
|
|
901
|
+
it('should validate config using Zod schema', () => {
|
|
902
|
+
expect(() => {
|
|
903
|
+
new http_1.HttpProvider('http://test.com', {
|
|
904
|
+
config: {
|
|
905
|
+
headers: { 'Content-Type': 123 }, // Invalid header type
|
|
906
|
+
},
|
|
907
|
+
});
|
|
908
|
+
}).toThrow('Expected string, received number');
|
|
909
|
+
});
|
|
910
|
+
it('should require body or GET method', () => {
|
|
911
|
+
expect(() => {
|
|
912
|
+
new http_1.HttpProvider('http://test.com', {
|
|
913
|
+
config: {
|
|
914
|
+
method: 'POST',
|
|
915
|
+
// Missing body
|
|
916
|
+
},
|
|
917
|
+
});
|
|
918
|
+
}).toThrow(/Expected HTTP provider http:\/\/test.com to have a config containing {body}/);
|
|
919
|
+
});
|
|
920
|
+
});
|
|
921
|
+
describe('content type handling', () => {
|
|
922
|
+
it('should handle JSON content type with object body', async () => {
|
|
923
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
924
|
+
config: {
|
|
925
|
+
method: 'POST',
|
|
926
|
+
headers: { 'Content-Type': 'application/json' },
|
|
927
|
+
body: { key: '{{ prompt }}' },
|
|
928
|
+
},
|
|
929
|
+
});
|
|
930
|
+
const mockResponse = {
|
|
931
|
+
data: JSON.stringify({ result: 'success' }),
|
|
932
|
+
status: 200,
|
|
933
|
+
statusText: 'OK',
|
|
934
|
+
cached: false,
|
|
935
|
+
};
|
|
936
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
937
|
+
await provider.callApi('test');
|
|
938
|
+
expect(cache_1.fetchWithCache).toHaveBeenCalledWith('http://test.com', expect.objectContaining({
|
|
939
|
+
headers: expect.objectContaining({ 'content-type': 'application/json' }),
|
|
940
|
+
body: JSON.stringify({ key: 'test' }),
|
|
941
|
+
}), expect.any(Number), 'text', undefined);
|
|
942
|
+
});
|
|
943
|
+
it('should handle non-JSON content type with string body', async () => {
|
|
944
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
945
|
+
config: {
|
|
946
|
+
method: 'POST',
|
|
947
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
948
|
+
body: 'Raw text {{ prompt }}',
|
|
949
|
+
},
|
|
950
|
+
});
|
|
951
|
+
const mockResponse = {
|
|
952
|
+
data: 'success',
|
|
953
|
+
status: 200,
|
|
954
|
+
statusText: 'OK',
|
|
955
|
+
cached: false,
|
|
956
|
+
};
|
|
957
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
958
|
+
await provider.callApi('test');
|
|
959
|
+
expect(cache_1.fetchWithCache).toHaveBeenCalledWith('http://test.com', expect.objectContaining({
|
|
960
|
+
headers: expect.objectContaining({ 'content-type': 'text/plain' }),
|
|
961
|
+
body: 'Raw text test',
|
|
962
|
+
}), expect.any(Number), 'text', undefined);
|
|
963
|
+
});
|
|
964
|
+
it('should throw error for object body with non-JSON content type', async () => {
|
|
965
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
966
|
+
config: {
|
|
967
|
+
method: 'POST',
|
|
968
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
969
|
+
body: { key: 'value' },
|
|
970
|
+
},
|
|
971
|
+
});
|
|
972
|
+
await expect(provider.callApi('test')).rejects.toThrow(/Content-Type is not application\/json/);
|
|
973
|
+
});
|
|
974
|
+
});
|
|
975
|
+
describe('request transformation', () => {
|
|
976
|
+
it('should handle string-based request transform', async () => {
|
|
977
|
+
jest.clearAllMocks();
|
|
978
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
979
|
+
config: {
|
|
980
|
+
method: 'POST',
|
|
981
|
+
headers: { 'Content-Type': 'application/json' },
|
|
982
|
+
body: { key: 'value' },
|
|
983
|
+
transformRequest: 'return { transformed: prompt.toLowerCase() }',
|
|
984
|
+
},
|
|
985
|
+
});
|
|
986
|
+
const mockResponse = {
|
|
987
|
+
data: JSON.stringify({ result: 'success' }),
|
|
988
|
+
status: 200,
|
|
989
|
+
statusText: 'OK',
|
|
990
|
+
cached: false,
|
|
991
|
+
};
|
|
992
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
993
|
+
await provider.callApi('TEST');
|
|
994
|
+
expect(cache_1.fetchWithCache).toHaveBeenCalledWith('http://test.com', expect.objectContaining({
|
|
995
|
+
method: 'POST',
|
|
996
|
+
headers: expect.objectContaining({ 'content-type': 'application/json' }),
|
|
997
|
+
body: JSON.stringify({ key: 'value', transformed: 'test' }),
|
|
998
|
+
}), expect.any(Number), 'text', undefined);
|
|
999
|
+
});
|
|
1000
|
+
it('should handle function-based request transform', async () => {
|
|
1001
|
+
jest.clearAllMocks();
|
|
1002
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
1003
|
+
config: {
|
|
1004
|
+
method: 'POST',
|
|
1005
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1006
|
+
body: { key: 'value' },
|
|
1007
|
+
transformRequest: (prompt) => ({ transformed: prompt.toUpperCase() }),
|
|
1008
|
+
},
|
|
1009
|
+
});
|
|
1010
|
+
const mockResponse = {
|
|
1011
|
+
data: JSON.stringify({ result: 'success' }),
|
|
1012
|
+
status: 200,
|
|
1013
|
+
statusText: 'OK',
|
|
1014
|
+
cached: false,
|
|
1015
|
+
};
|
|
1016
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
1017
|
+
await provider.callApi('test');
|
|
1018
|
+
expect(cache_1.fetchWithCache).toHaveBeenCalledWith('http://test.com', {
|
|
1019
|
+
method: 'POST',
|
|
1020
|
+
headers: { 'content-type': 'application/json' },
|
|
1021
|
+
body: JSON.stringify({ key: 'value', transformed: 'TEST' }),
|
|
1022
|
+
}, shared_1.REQUEST_TIMEOUT_MS, 'text', undefined);
|
|
1023
|
+
});
|
|
1024
|
+
});
|
|
1025
|
+
describe('response handling', () => {
|
|
1026
|
+
it('should handle successful JSON response', async () => {
|
|
1027
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
1028
|
+
config: {
|
|
1029
|
+
method: 'POST',
|
|
1030
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1031
|
+
body: { key: '{{ prompt }}' },
|
|
1032
|
+
},
|
|
1033
|
+
});
|
|
1034
|
+
const mockResponse = {
|
|
1035
|
+
data: JSON.stringify({ result: 'success' }),
|
|
1036
|
+
status: 200,
|
|
1037
|
+
statusText: 'OK',
|
|
1038
|
+
cached: false,
|
|
1039
|
+
};
|
|
1040
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
1041
|
+
const result = await provider.callApi('test');
|
|
1042
|
+
expect(result.output).toEqual({ result: 'success' });
|
|
1043
|
+
});
|
|
1044
|
+
it('should handle non-JSON response', async () => {
|
|
1045
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
1046
|
+
config: {
|
|
1047
|
+
method: 'POST',
|
|
1048
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
1049
|
+
body: 'test',
|
|
1050
|
+
transformResponse: (data, text) => text,
|
|
1051
|
+
},
|
|
1052
|
+
});
|
|
1053
|
+
const mockResponse = {
|
|
1054
|
+
data: 'Raw response',
|
|
1055
|
+
status: 200,
|
|
1056
|
+
statusText: 'OK',
|
|
1057
|
+
cached: false,
|
|
1058
|
+
headers: {},
|
|
1059
|
+
};
|
|
1060
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
1061
|
+
const result = await provider.callApi('test');
|
|
1062
|
+
expect(result.output).toBe(mockResponse.data);
|
|
1063
|
+
});
|
|
1064
|
+
it('should include debug information when requested', async () => {
|
|
1065
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
1066
|
+
config: {
|
|
1067
|
+
method: 'POST',
|
|
1068
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1069
|
+
body: { key: '{{ prompt }}' },
|
|
1070
|
+
},
|
|
1071
|
+
});
|
|
1072
|
+
const mockResponse = {
|
|
1073
|
+
data: JSON.stringify({ result: 'success' }),
|
|
1074
|
+
status: 200,
|
|
1075
|
+
statusText: 'OK',
|
|
1076
|
+
cached: false,
|
|
1077
|
+
headers: { 'x-test': 'test-header' },
|
|
1078
|
+
};
|
|
1079
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
1080
|
+
const result = await provider.callApi('test', {
|
|
1081
|
+
debug: true,
|
|
1082
|
+
prompt: { raw: 'test', label: 'test' },
|
|
1083
|
+
vars: {},
|
|
1084
|
+
});
|
|
1085
|
+
expect(result.raw).toBe(mockResponse.data);
|
|
1086
|
+
expect(result.metadata).toEqual({
|
|
1087
|
+
headers: mockResponse.headers,
|
|
1088
|
+
});
|
|
1089
|
+
});
|
|
1090
|
+
});
|
|
1091
|
+
describe('session handling', () => {
|
|
1092
|
+
it('should extract session ID from headers when configured', async () => {
|
|
1093
|
+
const sessionParser = jest.fn().mockReturnValue('test-session');
|
|
1094
|
+
const provider = new http_1.HttpProvider('http://test.com', {
|
|
1095
|
+
config: {
|
|
1096
|
+
method: 'POST',
|
|
1097
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1098
|
+
body: { key: '{{ prompt }}' },
|
|
1099
|
+
sessionParser,
|
|
1100
|
+
},
|
|
1101
|
+
});
|
|
1102
|
+
const mockResponse = {
|
|
1103
|
+
data: JSON.stringify({ result: 'success' }),
|
|
1104
|
+
status: 200,
|
|
1105
|
+
statusText: 'OK',
|
|
1106
|
+
cached: false,
|
|
1107
|
+
headers: { 'x-session-id': 'test-session' },
|
|
1108
|
+
};
|
|
1109
|
+
jest.mocked(cache_1.fetchWithCache).mockResolvedValueOnce(mockResponse);
|
|
1110
|
+
const result = await provider.callApi('test');
|
|
1111
|
+
expect(result.sessionId).toBe('test-session');
|
|
1112
|
+
expect(sessionParser).toHaveBeenCalledWith({ headers: mockResponse.headers });
|
|
1113
|
+
});
|
|
1114
|
+
});
|
|
883
1115
|
//# sourceMappingURL=http.test.js.map
|