feat: add type definitions for test framework
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
export interface AccessibilityResult {
|
||||
score: number;
|
||||
violations: Violation[];
|
||||
passes: number;
|
||||
incomplete: number;
|
||||
page: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
export interface Violation {
|
||||
id: string;
|
||||
impact: string;
|
||||
description: string;
|
||||
help: string;
|
||||
helpUrl: string;
|
||||
nodes: number;
|
||||
}
|
||||
|
||||
export interface WCAGCompliance {
|
||||
level: 'A' | 'AA' | 'AAA';
|
||||
passed: number;
|
||||
failed: number;
|
||||
total: number;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export * from './page.types';
|
||||
export * from './test.types';
|
||||
export * from './performance.types';
|
||||
export * from './accessibility.types';
|
||||
export * from './seo.types';
|
||||
@@ -0,0 +1,20 @@
|
||||
import { Page, Locator } from '@playwright/test';
|
||||
|
||||
export interface PageConfig {
|
||||
name: string;
|
||||
url: string;
|
||||
selectors: {
|
||||
title: string;
|
||||
[key: string]: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface PageSelectors {
|
||||
[key: string]: string;
|
||||
}
|
||||
|
||||
export interface NavigationItem {
|
||||
name: string;
|
||||
url: string;
|
||||
selector: string;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
export interface PerformanceMetrics {
|
||||
loadTime: number;
|
||||
domContentLoaded: number;
|
||||
firstPaint: number;
|
||||
firstContentfulPaint: number;
|
||||
}
|
||||
|
||||
export interface CoreWebVitals {
|
||||
largestContentfulPaint: number;
|
||||
firstInputDelay: number;
|
||||
cumulativeLayoutShift: number;
|
||||
}
|
||||
|
||||
export interface ResourceTiming {
|
||||
name: string;
|
||||
duration: number;
|
||||
size: number;
|
||||
type: string;
|
||||
}
|
||||
|
||||
export interface NetworkTiming {
|
||||
dns: number;
|
||||
tcp: number;
|
||||
ssl: number;
|
||||
request: number;
|
||||
response: number;
|
||||
total: number;
|
||||
}
|
||||
|
||||
export interface LighthouseResult {
|
||||
performance: number;
|
||||
accessibility: number;
|
||||
bestPractices: number;
|
||||
seo: number;
|
||||
pwa: number;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
export interface SEOResult {
|
||||
score: number;
|
||||
metaTags: MetaTagResult;
|
||||
headings: HeadingResult;
|
||||
links: LinkResult;
|
||||
images: ImageResult;
|
||||
}
|
||||
|
||||
export interface MetaTagResult {
|
||||
title: boolean;
|
||||
description: boolean;
|
||||
keywords: boolean;
|
||||
ogTitle: boolean;
|
||||
ogDescription: boolean;
|
||||
canonical: boolean;
|
||||
}
|
||||
|
||||
export interface HeadingResult {
|
||||
hasH1: boolean;
|
||||
headingStructure: boolean;
|
||||
multipleH1: boolean;
|
||||
}
|
||||
|
||||
export interface LinkResult {
|
||||
total: number;
|
||||
broken: number;
|
||||
internal: number;
|
||||
external: number;
|
||||
}
|
||||
|
||||
export interface ImageResult {
|
||||
total: number;
|
||||
withAlt: number;
|
||||
withoutAlt: number;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
export interface TestConfig {
|
||||
baseURL: string;
|
||||
timeout: number;
|
||||
retries: number;
|
||||
environment: string;
|
||||
headless: boolean;
|
||||
slowMo?: number;
|
||||
}
|
||||
|
||||
export interface TestResult {
|
||||
name: string;
|
||||
status: 'passed' | 'failed' | 'skipped';
|
||||
duration: number;
|
||||
errors?: Error[];
|
||||
}
|
||||
|
||||
export interface TestSuite {
|
||||
name: string;
|
||||
tests: TestResult[];
|
||||
summary: {
|
||||
total: number;
|
||||
passed: number;
|
||||
failed: number;
|
||||
skipped: number;
|
||||
duration: number;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user