Files
RedditBot/tests/matrix-http-media-downloader.test.ts
T

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');
});
});