mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
test: enhance agent-service tests with context loading mock
- Added a mock for the `loadContextFiles` function to return an empty context by default, improving test reliability. - Updated the agent-service test suite to ensure proper initialization of the `AgentService` with mocked dependencies. These changes aim to enhance the test coverage and stability of the agent-service functionality.
This commit is contained in:
@@ -4,12 +4,12 @@ import { ProviderFactory } from '@/providers/provider-factory.js';
|
|||||||
import * as fs from 'fs/promises';
|
import * as fs from 'fs/promises';
|
||||||
import * as imageHandler from '@automaker/utils';
|
import * as imageHandler from '@automaker/utils';
|
||||||
import * as promptBuilder from '@automaker/utils';
|
import * as promptBuilder from '@automaker/utils';
|
||||||
|
import * as contextLoader from '@automaker/utils';
|
||||||
import { collectAsyncGenerator } from '../../utils/helpers.js';
|
import { collectAsyncGenerator } from '../../utils/helpers.js';
|
||||||
|
|
||||||
vi.mock('fs/promises');
|
vi.mock('fs/promises');
|
||||||
vi.mock('@/providers/provider-factory.js');
|
vi.mock('@/providers/provider-factory.js');
|
||||||
vi.mock('@automaker/utils');
|
vi.mock('@automaker/utils');
|
||||||
vi.mock('@automaker/utils');
|
|
||||||
|
|
||||||
describe('agent-service.ts', () => {
|
describe('agent-service.ts', () => {
|
||||||
let service: AgentService;
|
let service: AgentService;
|
||||||
@@ -21,6 +21,12 @@ describe('agent-service.ts', () => {
|
|||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
vi.clearAllMocks();
|
vi.clearAllMocks();
|
||||||
service = new AgentService('/test/data', mockEvents as any);
|
service = new AgentService('/test/data', mockEvents as any);
|
||||||
|
|
||||||
|
// Mock loadContextFiles to return empty context by default
|
||||||
|
vi.mocked(contextLoader.loadContextFiles).mockResolvedValue({
|
||||||
|
files: [],
|
||||||
|
formattedPrompt: '',
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('initialize', () => {
|
describe('initialize', () => {
|
||||||
|
|||||||
@@ -24,6 +24,18 @@ export async function navigateToContext(page: Page): Promise<void> {
|
|||||||
await page.goto('/context');
|
await page.goto('/context');
|
||||||
await page.waitForLoadState('networkidle');
|
await page.waitForLoadState('networkidle');
|
||||||
|
|
||||||
|
// Wait for loading to complete (if present)
|
||||||
|
const loadingElement = page.locator('[data-testid="context-view-loading"]');
|
||||||
|
try {
|
||||||
|
const loadingVisible = await loadingElement.isVisible({ timeout: 2000 });
|
||||||
|
if (loadingVisible) {
|
||||||
|
// Wait for loading to disappear (context view will appear)
|
||||||
|
await loadingElement.waitFor({ state: 'hidden', timeout: 10000 });
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// Loading element not found or already hidden, continue
|
||||||
|
}
|
||||||
|
|
||||||
// Wait for the context view to be visible
|
// Wait for the context view to be visible
|
||||||
await waitForElement(page, 'context-view', { timeout: 10000 });
|
await waitForElement(page, 'context-view', { timeout: 10000 });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user