arda-site-scan
Version:
A standalone CLI tool for comprehensive website analysis including screenshots, SEO, and accessibility testing using Playwright
82 lines • 2.44 kB
TypeScript
import { TestConfig } from './index.js';
export type TestPhase = 1 | 2 | 3;
export type TestScope = 'session' | 'page';
export interface PhaseDefinition {
phase: TestPhase;
name: string;
description: string;
scope: TestScope;
dependencies: TestPhase[];
parallelizable: boolean;
}
export interface TestClassification {
testId: string;
phase: TestPhase;
scope: TestScope;
executionOrder: number;
dependencies: string[];
conflictsWith: string[];
resourceIntensive: boolean;
outputType: 'per-page' | 'site-wide';
}
export declare const TEST_CLASSIFICATIONS: Record<string, TestClassification>;
export declare const PHASE_DEFINITIONS: Record<TestPhase, PhaseDefinition>;
export interface PhaseExecutionPlan {
phase: TestPhase;
sessionTests: string[];
pageTests: string[];
maxConcurrency: number;
estimatedDuration?: number;
}
export interface ExecutionStrategy {
phases: PhaseExecutionPlan[];
totalEstimatedDuration: number;
parallelPages: boolean;
maxConcurrentPages: number;
}
export declare class TestPhaseManager {
/**
* Organize selected tests into execution phases
*/
static organizeTestsIntoPhases(config: TestConfig): ExecutionStrategy;
/**
* Check if tests can run in parallel (no conflicts)
*/
static canRunInParallel(testId1: string, testId2: string): boolean;
/**
* Get execution order for tests within a phase
*/
static getExecutionOrder(testIds: string[]): string[];
/**
* Check if all dependencies are satisfied
*/
static validateDependencies(testIds: string[]): {
valid: boolean;
missingDependencies: string[];
};
/**
* Get resource requirements for a phase
*/
static getPhaseResourceRequirements(phase: TestPhase, testIds: string[]): {
memoryIntensive: number;
cpuIntensive: number;
networkIntensive: number;
recommendedConcurrency: number;
};
/**
* Estimate duration for execution strategy
*/
private static estimateTotalDuration;
/**
* Get phase summary for display
*/
static getPhaseSummary(phase: TestPhase, testIds: string[]): {
name: string;
description: string;
testCount: number;
sessionTests: string[];
pageTests: string[];
estimatedDuration: number;
};
}
//# sourceMappingURL=test-phases.d.ts.map