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.
Files changed (113) hide show
  1. package/dist/package.json +20 -19
  2. package/dist/src/app/assets/{index-CTUbNoYk.js → index-DVXmxOKL.js} +253 -250
  3. package/dist/src/app/assets/{index.es-D3QM4dM5.js → index.es-CPd0hWI8.js} +1 -1
  4. package/dist/src/app/assets/{sync-Bkkellft.js → sync-Dr9NKr6x.js} +1 -1
  5. package/dist/src/app/index.html +1 -1
  6. package/dist/src/commands/eval.d.ts.map +1 -1
  7. package/dist/src/commands/eval.js +2 -1
  8. package/dist/src/commands/eval.js.map +1 -1
  9. package/dist/src/commands/generate/dataset.d.ts.map +1 -1
  10. package/dist/src/commands/generate/dataset.js +2 -1
  11. package/dist/src/commands/generate/dataset.js.map +1 -1
  12. package/dist/src/commands/init.d.ts.map +1 -1
  13. package/dist/src/commands/init.js +1 -3
  14. package/dist/src/commands/init.js.map +1 -1
  15. package/dist/src/evaluator.js +1 -1
  16. package/dist/src/evaluator.js.map +1 -1
  17. package/dist/src/onboarding.d.ts.map +1 -1
  18. package/dist/src/onboarding.js +3 -3
  19. package/dist/src/onboarding.js.map +1 -1
  20. package/dist/src/providers/azure.d.ts.map +1 -1
  21. package/dist/src/providers/azure.js +8 -8
  22. package/dist/src/providers/azure.js.map +1 -1
  23. package/dist/src/providers/defaults.d.ts +5 -0
  24. package/dist/src/providers/defaults.d.ts.map +1 -1
  25. package/dist/src/providers/defaults.js +44 -16
  26. package/dist/src/providers/defaults.js.map +1 -1
  27. package/dist/src/providers/http.d.ts +36 -13
  28. package/dist/src/providers/http.d.ts.map +1 -1
  29. package/dist/src/providers/http.js +19 -8
  30. package/dist/src/providers/http.js.map +1 -1
  31. package/dist/src/providers/promptfoo.d.ts.map +1 -1
  32. package/dist/src/providers/promptfoo.js +7 -8
  33. package/dist/src/providers/promptfoo.js.map +1 -1
  34. package/dist/src/redteam/commands/generate.d.ts.map +1 -1
  35. package/dist/src/redteam/commands/generate.js +8 -5
  36. package/dist/src/redteam/commands/generate.js.map +1 -1
  37. package/dist/src/redteam/commands/init.js +3 -3
  38. package/dist/src/redteam/commands/init.js.map +1 -1
  39. package/dist/src/redteam/commands/run.d.ts.map +1 -1
  40. package/dist/src/redteam/commands/run.js +2 -1
  41. package/dist/src/redteam/commands/run.js.map +1 -1
  42. package/dist/src/redteam/constants.d.ts +2 -0
  43. package/dist/src/redteam/constants.d.ts.map +1 -1
  44. package/dist/src/redteam/constants.js +2 -1
  45. package/dist/src/redteam/constants.js.map +1 -1
  46. package/dist/src/redteam/extraction/entities.d.ts.map +1 -1
  47. package/dist/src/redteam/extraction/entities.js +16 -9
  48. package/dist/src/redteam/extraction/entities.js.map +1 -1
  49. package/dist/src/redteam/extraction/purpose.d.ts.map +1 -1
  50. package/dist/src/redteam/extraction/purpose.js +11 -5
  51. package/dist/src/redteam/extraction/purpose.js.map +1 -1
  52. package/dist/src/redteam/index.js +1 -1
  53. package/dist/src/redteam/index.js.map +1 -1
  54. package/dist/src/redteam/plugins/base.js +2 -2
  55. package/dist/src/redteam/plugins/base.js.map +1 -1
  56. package/dist/src/redteam/plugins/crossSessionLeak.js +1 -1
  57. package/dist/src/redteam/plugins/crossSessionLeak.js.map +1 -1
  58. package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
  59. package/dist/src/redteam/providers/crescendo/index.js +14 -6
  60. package/dist/src/redteam/providers/crescendo/index.js.map +1 -1
  61. package/dist/src/redteam/providers/iterative.js +1 -1
  62. package/dist/src/redteam/providers/iterative.js.map +1 -1
  63. package/dist/src/redteam/providers/iterativeImage.d.ts.map +1 -1
  64. package/dist/src/redteam/providers/iterativeImage.js +1 -1
  65. package/dist/src/redteam/providers/iterativeImage.js.map +1 -1
  66. package/dist/src/redteam/providers/iterativeTree.js +1 -1
  67. package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
  68. package/dist/src/redteam/providers/shared.d.ts +13 -5
  69. package/dist/src/redteam/providers/shared.d.ts.map +1 -1
  70. package/dist/src/redteam/providers/shared.js +26 -3
  71. package/dist/src/redteam/providers/shared.js.map +1 -1
  72. package/dist/src/redteam/remoteGeneration.d.ts +1 -0
  73. package/dist/src/redteam/remoteGeneration.d.ts.map +1 -1
  74. package/dist/src/redteam/remoteGeneration.js +15 -0
  75. package/dist/src/redteam/remoteGeneration.js.map +1 -1
  76. package/dist/src/redteam/strategies/mathPrompt.d.ts.map +1 -1
  77. package/dist/src/redteam/strategies/mathPrompt.js +4 -1
  78. package/dist/src/redteam/strategies/mathPrompt.js.map +1 -1
  79. package/dist/src/redteam/strategies/multilingual.d.ts.map +1 -1
  80. package/dist/src/redteam/strategies/multilingual.js +5 -2
  81. package/dist/src/redteam/strategies/multilingual.js.map +1 -1
  82. package/dist/src/server/routes/configs.js +8 -2
  83. package/dist/src/server/routes/configs.js.map +1 -1
  84. package/dist/src/server/routes/eval.js +3 -0
  85. package/dist/src/server/routes/eval.js.map +1 -1
  86. package/dist/src/server/routes/providers.d.ts.map +1 -1
  87. package/dist/src/server/routes/providers.js +16 -13
  88. package/dist/src/server/routes/providers.js.map +1 -1
  89. package/dist/src/testCases.d.ts.map +1 -1
  90. package/dist/src/testCases.js +5 -1
  91. package/dist/src/testCases.js.map +1 -1
  92. package/dist/src/util/index.d.ts +1 -0
  93. package/dist/src/util/index.d.ts.map +1 -1
  94. package/dist/src/util/index.js +6 -0
  95. package/dist/src/util/index.js.map +1 -1
  96. package/dist/test/evaluator.test.js +40 -0
  97. package/dist/test/evaluator.test.js.map +1 -1
  98. package/dist/test/onboarding.test.js +7 -0
  99. package/dist/test/onboarding.test.js.map +1 -1
  100. package/dist/test/providers/azure.test.js +131 -0
  101. package/dist/test/providers/azure.test.js.map +1 -1
  102. package/dist/test/providers/http.test.js +241 -9
  103. package/dist/test/providers/http.test.js.map +1 -1
  104. package/dist/test/redteam/providers/shared.test.js +15 -8
  105. package/dist/test/redteam/providers/shared.test.js.map +1 -1
  106. package/dist/test/redteam/strategies/multilingual.test.js +11 -7
  107. package/dist/test/redteam/strategies/multilingual.test.js.map +1 -1
  108. package/dist/test/server/providers.test.js +55 -26
  109. package/dist/test/server/providers.test.js.map +1 -1
  110. package/dist/test/testCases.test.js +32 -0
  111. package/dist/test/testCases.test.js.map +1 -1
  112. package/dist/tsconfig.tsbuildinfo +1 -1
  113. 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(new Error('Invariant failed: Expected HTTP provider http://example.com/api to have a config containing {body}, but instead got "this isnt json"'));
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": "{{prompt}}"}');
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 file-based transforms', async () => {
823
- const mockTransform = jest.fn((prompt) => prompt.toUpperCase());
824
- jest.mocked(esm_1.importModule).mockResolvedValueOnce(mockTransform);
825
- const transform = await (0, http_1.createTransformRequest)('file://parsers/custom.js');
826
- const result = await transform('test');
827
- expect(esm_1.importModule).toHaveBeenCalledWith(path_1.default.resolve('/mock/base/path', 'parsers/custom.js'), undefined);
828
- expect(result).toBe('TEST');
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