fase(20): visual regression refactor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
28
src/main.ts
28
src/main.ts
@@ -65,6 +65,16 @@ import { OnFindingCreated } from './modules/integrations/application/event-handl
|
||||
import { RSALicenseValidator } from './modules/licensing/infrastructure/validators/RSALicenseValidator';
|
||||
import { LicenseService } from './modules/licensing/application/LicenseService';
|
||||
|
||||
// Visual regression module
|
||||
import { KyselyVisualBaselineRepository, KyselyVisualComparisonRepository } from './modules/visual-regression/infrastructure/repositories/KyselyVisualRepository';
|
||||
import { VisualRegressionAdapter } from './modules/visual-regression/infrastructure/adapters/VisualRegressionAdapter';
|
||||
import { ApproveBaselineCommand } from './modules/visual-regression/application/commands/ApproveBaselineCommand';
|
||||
import { RejectComparisonCommand } from './modules/visual-regression/application/commands/RejectComparisonCommand';
|
||||
import { ApproveAllNewStatesCommand } from './modules/visual-regression/application/commands/ApproveAllNewStatesCommand';
|
||||
import { ListComparisonsQuery } from './modules/visual-regression/application/queries/ListComparisonsQuery';
|
||||
import { LocalStorageProvider } from './shared/infrastructure/StorageProvider';
|
||||
import path from 'path';
|
||||
|
||||
// Scheduling module
|
||||
import { KyselyScheduleRepository } from './modules/scheduling/infrastructure/repositories/KyselyScheduleRepository';
|
||||
import { CreateScheduleCommand } from './modules/scheduling/application/commands/CreateScheduleCommand';
|
||||
@@ -171,6 +181,23 @@ async function bootstrap(): Promise<void> {
|
||||
jobQueue.registerHandler(REPORT_JOB_TYPE, createReportJobHandler({ logger, reportRepository: reportRepo, findingRepository: findingRepo }));
|
||||
jobQueue.start();
|
||||
|
||||
// 11d. Visual regression module
|
||||
const storageBasePath = path.join(process.cwd(), 'data');
|
||||
const storageProvider = new LocalStorageProvider(storageBasePath);
|
||||
const visualBaselineRepo = new KyselyVisualBaselineRepository(db);
|
||||
const visualComparisonRepo = new KyselyVisualComparisonRepository(db);
|
||||
const visualRegressionAdapter = new VisualRegressionAdapter(
|
||||
storageProvider,
|
||||
visualBaselineRepo,
|
||||
visualComparisonRepo,
|
||||
eventBus
|
||||
);
|
||||
void visualRegressionAdapter; // used by ExplorationOrchestrator in crawling infra
|
||||
const listComparisons = new ListComparisonsQuery(visualComparisonRepo);
|
||||
const approveBaseline = new ApproveBaselineCommand(visualComparisonRepo, visualBaselineRepo, eventBus);
|
||||
const rejectComparison = new RejectComparisonCommand(visualComparisonRepo);
|
||||
const approveAllNewStates = new ApproveAllNewStatesCommand(visualComparisonRepo, visualBaselineRepo, eventBus);
|
||||
|
||||
// 12b. Scheduling module (after job queue, since it enqueues jobs)
|
||||
const scheduleRepo = new KyselyScheduleRepository(db);
|
||||
const createSchedule = new CreateScheduleCommand(scheduleRepo, eventBus);
|
||||
@@ -191,6 +218,7 @@ async function bootstrap(): Promise<void> {
|
||||
reportingDeps: { generateReport, reportRepository: reportRepo, jobQueue },
|
||||
integrationsDeps: { integrationRepo, webhookRepo },
|
||||
schedulingDeps: { createSchedule, toggleSchedule, deleteSchedule, listSchedules, schedulingService, scheduleRepo },
|
||||
visualRegressionDeps: { listComparisons, approveBaseline, rejectComparison, approveAllNewStates },
|
||||
licenseService,
|
||||
authDeps: {
|
||||
registerCommand,
|
||||
|
||||
Reference in New Issue
Block a user