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