@@ -3,7 +3,7 @@ import { Readable } from 'node:stream'
33import { S3 } from '@aws-sdk/client-s3'
44import { beforeAll , beforeEach , describe , expect , it } from 'vitest'
55
6- import { S3PayloadStore } from '../../lib/S3PayloadStore.ts'
6+ import { S3PayloadStore , resolvePayloadStoreConfig } from '../../lib/S3PayloadStore.ts'
77import { assertEmptyBucket , getObjectContent , objectExists } from '../utils/s3Utils.ts'
88import { streamToString } from '../utils/streamUtils.ts'
99import { TEST_AWS_CONFIG } from '../utils/testS3Config.ts'
@@ -88,4 +88,31 @@ describe('S3PayloadStore', () => {
8888 await expect ( store . deletePayload ( 'non-existing-key' ) ) . resolves . not . toThrow ( )
8989 } )
9090 } )
91+ describe ( 'resolvePayloadStoreConfig' , ( ) => {
92+ it ( 'should return undefined if s3PayloadOffloadingBucket is not set' , ( ) => {
93+ const result = resolvePayloadStoreConfig ( { s3 : { } as any } )
94+ expect ( result ) . toBeUndefined ( )
95+ } )
96+ it ( 'should throw an error if S3 is not defined' , ( ) => {
97+ expect ( ( ) =>
98+ resolvePayloadStoreConfig (
99+ { s3 : undefined } ,
100+ {
101+ s3PayloadOffloadingBucket : 'test-bucket' ,
102+ messageSizeThreshold : 1 ,
103+ } ,
104+ ) ,
105+ ) . toThrowError ( 'AWS S3 client is required for payload offloading' )
106+ } )
107+ it ( 'should payload store config' , ( ) => {
108+ const result = resolvePayloadStoreConfig (
109+ { s3 : { } as any } ,
110+ { s3PayloadOffloadingBucket : 'test-bucket' , messageSizeThreshold : 1 } ,
111+ )
112+ expect ( result ) . toEqual ( {
113+ store : expect . any ( S3PayloadStore ) ,
114+ messageSizeThreshold : 1 ,
115+ } )
116+ } )
117+ } )
91118} )
0 commit comments