mirror of
https://github.com/andy-stack/vaultkeeper-ai.git
synced 2026-07-22 06:42:03 +00:00
test: add getMimeType mock to Attachment test fixtures
Add getMimeType method mock to all Attachment test objects across AI service tests (Claude, Gemini, OpenAI) and mock StringTools.resizeB64Image in BaseAIFileService tests to prevent browser environment issues.
This commit is contained in:
parent
a4800bd6da
commit
d26140491c
4 changed files with 54 additions and 0 deletions
|
|
@ -5,6 +5,7 @@ import { Attachment } from '../../Conversations/Attachment';
|
|||
import { RegisterSingleton, DeregisterAllServices } from '../../Services/DependencyService';
|
||||
import { Services } from '../../Services/Services';
|
||||
import { AbortService } from '../../Services/AbortService';
|
||||
import { StringTools } from '../../Helpers/StringTools';
|
||||
|
||||
/**
|
||||
* Concrete implementation for testing BaseAIFileService
|
||||
|
|
@ -36,6 +37,9 @@ describe('BaseAIFileService', () => {
|
|||
let abortService: AbortService;
|
||||
|
||||
beforeEach(() => {
|
||||
// Mock StringTools.resizeB64Image to avoid browser environment issues in tests
|
||||
vi.spyOn(StringTools, 'resizeB64Image').mockImplementation(async (base64: string) => base64);
|
||||
|
||||
// Mock SettingsService
|
||||
const mockSettingsService = {
|
||||
settings: {
|
||||
|
|
|
|||
|
|
@ -776,6 +776,7 @@ describe('Claude', () => {
|
|||
fileName: 'test-image.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==',
|
||||
getMimeType: vi.fn(() => 'image/png'),
|
||||
getFileID: vi.fn(() => 'file_123'), // Mock file ID
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -808,6 +809,7 @@ describe('Claude', () => {
|
|||
fileName: 'document.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'JVBERi0xLjQKJeLjz9MK',
|
||||
getMimeType: vi.fn(() => 'application/pdf'),
|
||||
getFileID: vi.fn(() => 'file_456'), // Mock file ID
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1227,6 +1229,7 @@ describe('Claude', () => {
|
|||
fileName: 'report.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'base64encodedcontent',
|
||||
getMimeType: vi.fn(() => 'application/pdf'),
|
||||
getFileID: vi.fn(() => 'file_pdf_123'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1254,6 +1257,7 @@ describe('Claude', () => {
|
|||
fileName: 'photo.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'base64imagedata',
|
||||
getMimeType: vi.fn(() => 'image/jpeg'),
|
||||
getFileID: vi.fn(() => 'file_img_jpeg'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1281,6 +1285,7 @@ describe('Claude', () => {
|
|||
fileName: 'diagram.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'base64pngdata',
|
||||
getMimeType: vi.fn(() => 'image/png'),
|
||||
getFileID: vi.fn(() => 'file_img_png'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1304,6 +1309,7 @@ describe('Claude', () => {
|
|||
fileName: 'animation.gif',
|
||||
mimeType: 'image/gif',
|
||||
base64: 'base64gifdata',
|
||||
getMimeType: vi.fn(() => 'image/gif'),
|
||||
getFileID: vi.fn(() => 'file_img_gif'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1327,6 +1333,7 @@ describe('Claude', () => {
|
|||
fileName: 'modern.webp',
|
||||
mimeType: 'image/webp',
|
||||
base64: 'base64webpdata',
|
||||
getMimeType: vi.fn(() => 'image/webp'),
|
||||
getFileID: vi.fn(() => 'file_img_webp'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1350,6 +1357,7 @@ describe('Claude', () => {
|
|||
fileName: 'photo.bmp',
|
||||
mimeType: 'image/bmp',
|
||||
base64: 'base64bmpdata',
|
||||
getMimeType: vi.fn(() => 'image/bmp'),
|
||||
getFileID: vi.fn(() => 'file_img_bmp'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1371,6 +1379,7 @@ describe('Claude', () => {
|
|||
fileName: 'doc.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: vi.fn(() => 'application/pdf'),
|
||||
getFileID: vi.fn(() => 'file_1'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1379,6 +1388,7 @@ describe('Claude', () => {
|
|||
fileName: 'image.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: vi.fn(() => 'image/jpeg'),
|
||||
getFileID: vi.fn(() => 'file_2'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1387,6 +1397,7 @@ describe('Claude', () => {
|
|||
fileName: 'screenshot.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'pngdata',
|
||||
getMimeType: vi.fn(() => 'image/png'),
|
||||
getFileID: vi.fn(() => 'file_3'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1435,6 +1446,7 @@ describe('Claude', () => {
|
|||
fileName: 'good.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: vi.fn(() => 'image/jpeg'),
|
||||
getFileID: vi.fn(() => 'file_good'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1443,6 +1455,7 @@ describe('Claude', () => {
|
|||
fileName: 'bad.bmp',
|
||||
mimeType: 'image/bmp',
|
||||
base64: 'bmpdata',
|
||||
getMimeType: vi.fn(() => 'image/bmp'),
|
||||
getFileID: vi.fn(() => 'file_bad'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1451,6 +1464,7 @@ describe('Claude', () => {
|
|||
fileName: 'doc.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: vi.fn(() => 'application/pdf'),
|
||||
getFileID: vi.fn(() => 'file_pdf'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1479,6 +1493,7 @@ describe('Claude', () => {
|
|||
fileName: 'image.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'imagedata',
|
||||
getMimeType: vi.fn(() => 'image/png'),
|
||||
getFileID: vi.fn(() => undefined), // No file ID
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1497,6 +1512,7 @@ describe('Claude', () => {
|
|||
fileName: 'document.PDF',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: vi.fn(() => 'application/pdf'),
|
||||
getFileID: vi.fn(() => 'file_pdf_upper'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1505,6 +1521,7 @@ describe('Claude', () => {
|
|||
fileName: 'photo.JPG',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: vi.fn(() => 'image/jpeg'),
|
||||
getFileID: vi.fn(() => 'file_jpg_upper'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1535,6 +1552,7 @@ describe('Claude', () => {
|
|||
fileName: 'report (final) v2.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: vi.fn(() => 'application/pdf'),
|
||||
getFileID: vi.fn(() => 'file_special'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1551,6 +1569,7 @@ describe('Claude', () => {
|
|||
fileName: 'photo.jpeg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: vi.fn(() => 'image/jpeg'),
|
||||
getFileID: vi.fn(() => 'file_jpeg_ext'),
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
|
|||
|
|
@ -1124,6 +1124,7 @@ describe('Gemini', () => {
|
|||
fileName: 'report.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'base64encodedcontent',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-123',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1149,6 +1150,7 @@ describe('Gemini', () => {
|
|||
fileName: 'photo.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'base64imagedata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-456',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1174,6 +1176,7 @@ describe('Gemini', () => {
|
|||
fileName: 'diagram.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'base64pngdata',
|
||||
getMimeType: () => 'image/png',
|
||||
getFileID: () => 'file-789',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1196,6 +1199,7 @@ describe('Gemini', () => {
|
|||
fileName: 'animation.gif',
|
||||
mimeType: 'image/gif',
|
||||
base64: 'base64gifdata',
|
||||
getMimeType: () => 'image/gif',
|
||||
getFileID: () => 'file-gif',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1215,6 +1219,7 @@ describe('Gemini', () => {
|
|||
fileName: 'photo.bmp',
|
||||
mimeType: 'image/bmp',
|
||||
base64: 'base64bmpdata',
|
||||
getMimeType: () => 'image/bmp',
|
||||
getFileID: () => 'file-bmp',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1235,6 +1240,7 @@ describe('Gemini', () => {
|
|||
fileName: 'doc.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-pdf',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1243,6 +1249,7 @@ describe('Gemini', () => {
|
|||
fileName: 'image.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-jpg',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1251,6 +1258,7 @@ describe('Gemini', () => {
|
|||
fileName: 'screenshot.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'pngdata',
|
||||
getMimeType: () => 'image/png',
|
||||
getFileID: () => 'file-png',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1296,6 +1304,7 @@ describe('Gemini', () => {
|
|||
fileName: 'good.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-jpg',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1304,6 +1313,7 @@ describe('Gemini', () => {
|
|||
fileName: 'bad.bmp',
|
||||
mimeType: 'image/bmp',
|
||||
base64: 'bmpdata',
|
||||
getMimeType: () => 'image/bmp',
|
||||
getFileID: () => 'file-bmp',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1312,6 +1322,7 @@ describe('Gemini', () => {
|
|||
fileName: 'doc.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-pdf',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1338,6 +1349,7 @@ describe('Gemini', () => {
|
|||
fileName: 'success.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-success',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1346,6 +1358,7 @@ describe('Gemini', () => {
|
|||
fileName: 'failed.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => undefined, // Upload failed
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1377,6 +1390,7 @@ describe('Gemini', () => {
|
|||
fileName: 'report (final) v2.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-123',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1393,6 +1407,7 @@ describe('Gemini', () => {
|
|||
fileName: 'photo.jpeg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-jpeg',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
|
|||
|
|
@ -1002,6 +1002,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'report.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'base64encodedcontent',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-123',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1028,6 +1029,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'photo.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'base64imagedata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-456',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1054,6 +1056,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'diagram.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'base64pngdata',
|
||||
getMimeType: () => 'image/png',
|
||||
getFileID: () => 'file-789',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1079,6 +1082,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'modern.webp',
|
||||
mimeType: 'image/webp',
|
||||
base64: 'base64webpdata',
|
||||
getMimeType: () => 'image/webp',
|
||||
getFileID: () => 'file-webp',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1104,6 +1108,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'photo.gif',
|
||||
mimeType: 'image/gif',
|
||||
base64: 'base64gifdata',
|
||||
getMimeType: () => 'image/gif',
|
||||
getFileID: () => 'file-gif',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1125,6 +1130,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'failed.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'base64data',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => undefined, // Upload failed
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1144,6 +1150,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'doc.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-pdf',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1152,6 +1159,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'image.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-jpg',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1160,6 +1168,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'screenshot.png',
|
||||
mimeType: 'image/png',
|
||||
base64: 'pngdata',
|
||||
getMimeType: () => 'image/png',
|
||||
getFileID: () => 'file-png',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1207,6 +1216,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'good.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => 'file-jpg',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1215,6 +1225,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'bad.bmp',
|
||||
mimeType: 'image/bmp',
|
||||
base64: 'bmpdata',
|
||||
getMimeType: () => 'image/bmp',
|
||||
getFileID: () => 'file-bmp',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1223,6 +1234,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'doc.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-pdf',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1257,6 +1269,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'success.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'pdfdata',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => 'file-success',
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1265,6 +1278,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'failed.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'jpegdata',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => undefined, // Upload failed
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1301,6 +1315,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'failed1.pdf',
|
||||
mimeType: 'application/pdf',
|
||||
base64: 'data1',
|
||||
getMimeType: () => 'application/pdf',
|
||||
getFileID: () => undefined,
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
@ -1309,6 +1324,7 @@ describe('OpenAI', () => {
|
|||
fileName: 'failed2.jpg',
|
||||
mimeType: 'image/jpeg',
|
||||
base64: 'data2',
|
||||
getMimeType: () => 'image/jpeg',
|
||||
getFileID: () => undefined,
|
||||
setFileID: vi.fn(),
|
||||
deleteFileID: vi.fn()
|
||||
|
|
|
|||
Loading…
Reference in a new issue