import { IGenAI, GenerateUrlContextInput, GenerateUrlContextResponse } from './IGenAI.js';
export class FakeGenAI implements IGenAI {
private mockResponse: GenerateUrlContextResponse | null = null;
private shouldThrow: Error | null = null;
setMockResponse(response: GenerateUrlContextResponse): void {
this.mockResponse = response;
this.shouldThrow = null;
}
setThrowError(error: Error): void {
this.shouldThrow = error;
this.mockResponse = null;
}
async generateUrlContextJson(input: GenerateUrlContextInput): Promise<GenerateUrlContextResponse> {
if (this.shouldThrow) {
throw this.shouldThrow;
}
if (this.mockResponse) {
return this.mockResponse;
}
// Default mock response for testing
return {
pages: input.urls.map(url => ({
url,
title: `Mock Title for ${url}`,
text: `Mock content for ${url}`,
images: []
})),
answer: input.query ? `Mock answer for: ${input.query}` : '',
url_context_metadata: {
status: 'success',
totalUrls: input.urls.length,
successfulUrls: input.urls.length,
failedUrls: [],
processingTimeMs: 1000
}
};
}
}