| | const { getS3URL } = require('../../../../../server/services/Files/S3/crud'); |
| |
|
| | |
| | jest.mock('@aws-sdk/client-s3', () => ({ |
| | S3Client: jest.fn(() => ({ |
| | send: jest.fn(), |
| | })), |
| | GetObjectCommand: jest.fn(), |
| | })); |
| |
|
| | jest.mock('@aws-sdk/s3-request-presigner', () => ({ |
| | getSignedUrl: jest.fn(), |
| | })); |
| |
|
| | jest.mock('../../../../../config', () => ({ |
| | logger: { |
| | error: jest.fn(), |
| | }, |
| | })); |
| |
|
| | const { getSignedUrl } = require('@aws-sdk/s3-request-presigner'); |
| | const { GetObjectCommand } = require('@aws-sdk/client-s3'); |
| |
|
| | describe('S3 crud.js - test only new parameter changes', () => { |
| | beforeEach(() => { |
| | jest.clearAllMocks(); |
| | process.env.AWS_BUCKET_NAME = 'test-bucket'; |
| | }); |
| |
|
| | |
| | it('should include customFilename in response headers when provided', async () => { |
| | getSignedUrl.mockResolvedValue('https://test-presigned-url.com'); |
| |
|
| | await getS3URL({ |
| | userId: 'user123', |
| | fileName: 'test.pdf', |
| | customFilename: 'cleaned_filename.pdf', |
| | }); |
| |
|
| | |
| | const commandArgs = GetObjectCommand.mock.calls[0][0]; |
| | expect(commandArgs.ResponseContentDisposition).toBe( |
| | 'attachment; filename="cleaned_filename.pdf"', |
| | ); |
| | }); |
| |
|
| | |
| | it('should include contentType in response headers when provided', async () => { |
| | getSignedUrl.mockResolvedValue('https://test-presigned-url.com'); |
| |
|
| | await getS3URL({ |
| | userId: 'user123', |
| | fileName: 'test.pdf', |
| | contentType: 'application/pdf', |
| | }); |
| |
|
| | |
| | const commandArgs = GetObjectCommand.mock.calls[0][0]; |
| | expect(commandArgs.ResponseContentType).toBe('application/pdf'); |
| | }); |
| |
|
| | it('should work without new parameters (backward compatibility)', async () => { |
| | getSignedUrl.mockResolvedValue('https://test-presigned-url.com'); |
| |
|
| | const result = await getS3URL({ |
| | userId: 'user123', |
| | fileName: 'test.pdf', |
| | }); |
| |
|
| | expect(result).toBe('https://test-presigned-url.com'); |
| | }); |
| | }); |
| |
|