tui-tester
Version:
End-to-end testing framework for terminal user interfaces
179 lines (175 loc) • 4.69 kB
text/typescript
import { A as AssertionOptions, S as ScreenCapture, c as Snapshot } from '../types-I_UaGSPL.cjs';
/**
* Snapshot Manager
* Manages terminal screen snapshots for testing
*/
interface SnapshotOptions {
updateSnapshots?: boolean;
snapshotDir?: string;
diffOptions?: AssertionOptions;
format?: 'json' | 'text' | 'ansi';
}
declare class SnapshotManager {
private adapter;
private options;
private snapshots;
private snapshotCounter;
private snapshotDir;
constructor(snapshotDir?: string | SnapshotOptions);
/**
* Configure the snapshot manager
*/
configure(options: Partial<SnapshotOptions> & {
stripAnsi?: boolean;
trim?: boolean;
}): void;
/**
* Create a snapshot from screen capture
*/
createSnapshot(capture: ScreenCapture, name?: string): Snapshot;
/**
* Match a capture against a snapshot
*/
matchSnapshot(capture: ScreenCapture, snapshotName: string, testPath?: string): Promise<{
pass: boolean;
message?: string;
diff?: string;
}>;
/**
* Compare two screen captures
*/
compareCaptures(actual: ScreenCapture, expected: ScreenCapture): boolean;
/**
* Generate diff between captures
*/
generateDiff(actual: ScreenCapture, expected: ScreenCapture): string;
/**
* Save snapshot to file
*/
saveSnapshot(snapshot: Snapshot, path?: string): Promise<void>;
/**
* Load snapshot from file
*/
loadSnapshot(path: string): Promise<Snapshot>;
/**
* Update existing snapshot
*/
updateSnapshot(snapshotName: string, capture: ScreenCapture, testPath?: string): Promise<void>;
/**
* Remove snapshot
*/
removeSnapshot(snapshotName: string, testPath?: string): Promise<void>;
/**
* List all snapshots
*/
listSnapshots(): Promise<string[]>;
/**
* Clear all snapshots
*/
clearSnapshots(): Promise<void>;
/**
* Get snapshot by name
*/
getSnapshot(name: string): Snapshot | undefined;
/**
* Check if snapshot exists
*/
snapshotExists(snapshotName: string, testPath?: string): Promise<boolean>;
/**
* Save a simple text snapshot
*/
save(name: string, content: string): Promise<void>;
/**
* Load a simple text snapshot
*/
load(name: string): Promise<string | null>;
/**
* Compare two snapshots
*/
compare(name1: string, name2: string): Promise<{
identical: boolean;
differences: Array<{
line: number;
expected?: string;
actual?: string;
}>;
error?: string;
}>;
/**
* Compare with options
*/
compareWithOptions(name1: string, name2: string, options: {
ignoreWhitespace?: boolean;
ignoreAnsi?: boolean;
}): Promise<{
identical: boolean;
match?: boolean;
diff?: string;
}>;
/**
* Delete a snapshot
*/
delete(name: string): Promise<boolean>;
/**
* Delete all snapshots
*/
deleteAll(): Promise<void>;
/**
* List all snapshot names
*/
list(pattern?: string): Promise<string[]>;
/**
* List by pattern (alias for list with pattern)
*/
listByPattern(pattern: string): Promise<string[]>;
/**
* Check if update is needed
*/
needsUpdate(name: string, content: string): Promise<boolean>;
/**
* Save with metadata
*/
saveWithMetadata(name: string, content: string, metadata?: any): Promise<void>;
/**
* Load with metadata
*/
loadWithMetadata(name: string): Promise<{
content: string;
metadata?: any;
} | null>;
/**
* Format snapshot for display
*/
format(name: string): Promise<string | null>;
/**
* Format with options
*/
formatWithOptions(name: string, options: {
lineNumbers?: boolean;
colors?: boolean;
}): Promise<string | null>;
/**
* Generate unified diff between two snapshots
*/
diff(name1: string, name2: string): Promise<string | null>;
/**
* Sanitize snapshot name
*/
private sanitizeName;
/**
* Create a simple diff
*/
private createDiff;
private generateSnapshotId;
private getSnapshotPath;
private getFileExtension;
}
/**
* Get or create global snapshot manager
*/
declare function getSnapshotManager(options?: SnapshotOptions): SnapshotManager;
/**
* Reset global snapshot manager
*/
declare function resetSnapshotManager(): void;
export { SnapshotManager, type SnapshotOptions, getSnapshotManager, resetSnapshotManager };