26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
import { describe, expect, it, vi } from 'vitest';
|
|
import { MatrixMediaDownloader } from '../src/services/chat/matrix/http-media-downloader.js';
|
|
import { createMockLogger } from './mockLogger.js';
|
|
|
|
describe('MatrixMediaDownloader', () => {
|
|
it('uses replacement Matrix credentials for subsequent media downloads', async () => {
|
|
const staleClient = { downloadMedia: vi.fn().mockRejectedValue(new Error('expired')) };
|
|
const freshClient = {
|
|
downloadMedia: vi.fn().mockResolvedValue({
|
|
bytes: Buffer.from('fresh-image'),
|
|
contentType: 'image/jpeg',
|
|
}),
|
|
};
|
|
const downloader = new MatrixMediaDownloader(staleClient as never, createMockLogger());
|
|
|
|
downloader.setMatrixClient(freshClient as never);
|
|
|
|
await expect(downloader.fetch('mxc://reddit.com/image')).resolves.toEqual({
|
|
buffer: Buffer.from('fresh-image'),
|
|
contentType: 'image/jpeg',
|
|
});
|
|
expect(staleClient.downloadMedia).not.toHaveBeenCalled();
|
|
expect(freshClient.downloadMedia).toHaveBeenCalledWith('mxc://reddit.com/image');
|
|
});
|
|
});
|