tdpw
Version:
CLI tool for uploading Playwright test reports to TestDino platform with Azure storage support
80 lines • 2.36 kB
TypeScript
/**
* Attachment processing utilities for Playwright reports
*/
import { PlaywrightReport } from './parser';
/**
* Attachment information extracted from Playwright report
*/
export interface AttachmentInfo {
name: string;
contentType: string;
originalPath: string;
relativePath: string;
absolutePath: string;
type: 'image' | 'video' | 'trace' | 'other';
}
/**
* Result of attachment scanning process
*/
export interface AttachmentScanResult {
images: AttachmentInfo[];
videos: AttachmentInfo[];
traces: AttachmentInfo[];
other: AttachmentInfo[];
total: number;
}
/**
* Service for scanning and processing attachments from Playwright reports
*/
export declare class AttachmentScanner {
private readonly baseDirectory;
constructor(baseDirectory: string);
/**
* Scan Playwright report for all attachments
*/
scanAttachments(report: PlaywrightReport): Promise<AttachmentScanResult>;
/**
* Recursively scan a test suite for attachments
*/
private scanSuite;
/**
* Scan a spec for attachments
*/
private scanSpec;
/**
* Process a single attachment and resolve its paths
*/
private processAttachment;
/**
* Classify attachment by content type and name
*/
private classifyAttachment;
/**
* Filter attachments based on configuration flags
*/
static filterAttachments(scanResult: AttachmentScanResult, config: {
uploadImages: boolean;
uploadVideos: boolean;
uploadHtml: boolean;
uploadTraces: boolean;
}): AttachmentInfo[];
/**
* Static version of classifyAttachment for use in static methods
*/
private static classifyAttachmentType;
/**
* Determine what should happen to an attachment path based on config
* Returns: 'upload' | 'not-enabled' | 'not-supported' | 'unchanged'
*/
private static getAttachmentPathAction;
/**
* Update attachment paths in the JSON report to use Azure URLs or mark as 'Not Enabled'
*/
static updateAttachmentPaths(report: PlaywrightReport, urlMapping: Map<string, string>, config?: {
uploadImages: boolean;
uploadVideos: boolean;
uploadHtml: boolean;
uploadTraces: boolean;
}): PlaywrightReport;
}
//# sourceMappingURL=attachments.d.ts.map