/** * QA360 State Reset Module * * P0: Clean slate between tests * - Clear localStorage * - Clear sessionStorage * - Clear cookies * - Clear caches * - Reset navigation state * - Clear all storage */ import type { Page, BrowserContext } from '@playwright/test'; /** * State reset options */ export interface StateResetOptions { /** Clear localStorage */ clearLocalStorage?: boolean; /** Clear sessionStorage */ clearSessionStorage?: boolean; /** Clear cookies */ clearCookies?: boolean; /** Clear all storage */ clearAll?: boolean; /** Reset navigation to blank page */ resetNavigation?: boolean; /** Clear browser cache */ clearCache?: boolean; /** Wait for network idle before proceeding */ waitForNetworkIdle?: boolean; } /** * State Reset Helper * * Provides methods to reset browser state between tests */ export declare class StateReset { /** * Reset all state for a page * * @param page - Playwright page to reset * @param options - Reset options */ static resetPage(page: Page, options?: StateResetOptions): Promise; /** * Reset all state for a browser context * * @param context - Playwright browser context to reset * @param options - Reset options */ static resetContext(context: BrowserContext, options?: StateResetOptions): Promise; /** * Complete reset: clears everything * * @param context - Browser context * @param page - Optional specific page to reset */ static resetAll(context: BrowserContext, page?: Page): Promise; /** * Reset to a blank state (useful between tests) * * @param page - Playwright page */ static resetToBlank(page: Page): Promise; /** * Clean up before a test * * @param page - Playwright page * @param baseUrl - Base URL to navigate to after cleanup */ static setupTest(page: Page, baseUrl?: string): Promise; /** * Clean up after a test * * @param context - Browser context * @param page - Playwright page */ static teardownTest(context: BrowserContext, page: Page): Promise; /** * Clear specific storage keys * * @param page - Playwright page * @param keys - Keys to clear (supports wildcards with *) * @param storage - Storage type ('localStorage' or 'sessionStorage') */ static clearKeys(page: Page, keys: string[], storage?: 'localStorage' | 'sessionStorage'): Promise; /** * Get storage size (useful for debugging) * * @param page - Playwright page * @returns Storage size info */ static getStorageSize(page: Page): Promise<{ localStorage: { entries: number; size: number; }; sessionStorage: { entries: number; size: number; }; }>; } /** * Convenience function to reset page state */ export declare function resetPageState(page: Page, options?: StateResetOptions): Promise; /** * Convenience function to reset to blank */ export declare function resetToBlank(page: Page): Promise; /** * Convenience function to setup test */ export declare function setupTest(page: Page, baseUrl?: string): Promise; /** * Convenience function to teardown test */ export declare function teardownTest(context: BrowserContext, page: Page): Promise;