diff --git a/src/Copilot.test.ts b/src/Copilot.test.ts index fe209d3..e6fcd30 100644 --- a/src/Copilot.test.ts +++ b/src/Copilot.test.ts @@ -1,7 +1,7 @@ import { Copilot } from '@/Copilot'; import { CopilotStepPerformer } from '@/actions/CopilotStepPerformer'; import { CopilotError } from '@/errors/CopilotError'; -import { Config, ScreenCapturerResult } from '@/types'; +import { Config, ScreenCapturerResult, PromptHandler } from '@/types'; import { mockCache, mockedCacheFile } from './test-utils/cache'; import { ScreenCapturer } from '@/utils/ScreenCapturer'; import { @@ -10,6 +10,7 @@ import { barCategory1, dummyContext, } from './test-utils/APICatalogTestUtils'; +import { PilotPerformer } from './actions/PilotPerformer'; jest.mock('@/actions/CopilotStepPerformer'); jest.mock('@/utils/ScreenCapturer'); @@ -21,28 +22,41 @@ const VIEW_HIERARCHY = 'hash'; describe('Copilot', () => { let mockConfig: Config; + let mockPromptHandler: jest.Mocked; + let mockFrameworkDriver: any; + let mockPilotPerformer: jest.Mocked; let screenCapture: ScreenCapturerResult; beforeEach(() => { - mockConfig = { - frameworkDriver: { - captureSnapshotImage: jest.fn(), - captureViewHierarchyString: jest.fn(), - apiCatalog: { - context: {}, - categories: [], - }, - }, - promptHandler: { - runPrompt: jest.fn(), - isSnapshotImageSupported: jest.fn().mockReturnValue(true), + mockPromptHandler = { + runPrompt: jest.fn(), + isSnapshotImageSupported: jest.fn() + } as any; + + mockFrameworkDriver = { + apiCatalog: { + context: {}, + categories: [] }, + captureSnapshotImage: jest.fn(), + captureViewHierarchyString: jest.fn() }; + mockPilotPerformer = { + perform: jest.fn() + } as any; + + mockConfig = { + promptHandler: mockPromptHandler, + frameworkDriver: mockFrameworkDriver + }; + + jest.spyOn(PilotPerformer.prototype, 'perform').mockImplementation(mockPilotPerformer.perform); + screenCapture = { - snapshot: SNAPSHOT_DATA, - viewHierarchy: VIEW_HIERARCHY, - isSnapshotImageAttached: true, + snapshot: 'base64-encoded-image', + viewHierarchy: '