magnitude-core
Version:
Magnitude e2e testing agent
59 lines (58 loc) • 1.53 kB
TypeScript
import EventEmitter from "eventemitter3";
import { BrowserContext, Page } from "playwright";
export interface TabEvents {
'tabChanged': (page: Page) => void;
}
export interface TabState {
activeTab: number;
tabs: {
title: string;
url: string;
}[];
}
export interface TabManagerOptions {
switchOnActivity?: boolean;
}
export declare class TabManager {
private context;
private activePage;
private options;
private pollInterval?;
readonly events: EventEmitter<TabEvents>;
constructor(context: BrowserContext, options?: TabManagerOptions);
initialize(): Promise<void>;
private initializeExistingPages;
private onPageCreated;
private setupPageTracking;
private startActivityPolling;
setActivePage(page: Page): void;
switchTab(index: number): Promise<void>;
getActivePage(): Page;
getPages(): Page[];
retrieveState(): Promise<TabState>;
debugVisibilityStates(): Promise<({
hasFocus: boolean;
hidden: boolean;
visibilityState: DocumentVisibilityState;
index: number;
url: string;
error?: undefined;
} | {
index: number;
url: string;
error: boolean;
})[]>;
debugFocusStates(): Promise<({
hasFocus: boolean;
isVisible: boolean;
isHidden: boolean;
url: string;
index: number;
error?: undefined;
} | {
index: number;
url: string;
error: boolean;
})[]>;
destroy(): void;
}