UNPKG

web-vitals-test

Version:
258 lines (257 loc) 8.7 kB
import { Page, ClickOptions, Browser, ElementHandle } from 'puppeteer-core'; import { LCP, FID, CLS, Emulation, Selector, NavigationWaitOptions } from './types'; import { Scenario } from './Report/Scenario'; export declare class Controller { protected localServerURL: string; protected browser: Browser | undefined; protected cPage: Page | undefined; protected mode: string; protected port: number; protected createReport: boolean; protected previousAction: string; protected currentScenario: Scenario | undefined; constructor(); init(options: { port?: number; mode?: string; reportTitle?: string; createReport?: boolean; }): void; setBrowser(browser: Browser, mode?: string): Promise<void>; getPage(): Page | undefined; setNewPage(mode?: string): Promise<void>; setCurrentScenario(name: string): void; stopServer(): void; goToAndMeasure(actionName: string, url: string, options?: NavigationWaitOptions, thinkTime?: number): Promise<{ error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; /** * * @param url URL * @param actionName Action Name that will be displayed in the report * @param element CSS selector or XPath selector * @param options navigation options or wait in ms before element click */ goTo_ClickAndMeasure(actionName: string, url: string, element: Selector | ElementHandle, options?: { goToOptions?: NavigationWaitOptions; clickNavigationOptions?: NavigationWaitOptions; clickOptions?: ClickOptions; }, thinkTime?: number): Promise<{ error: string; } | { error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; goTo_ClickAndMeasureFID(actionName: string, url: string, elementLocation: { x: number; y: number; }, clickAfter: 'domcontentloaded' | 'load' | 'dominteractive' | 'first-contentful-paint' | 'largest-contentful-paint', emulation?: Emulation): Promise<{ error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; clickAndMeasure(actionName: string, element: Selector | ElementHandle, options?: { clickOptions?: ClickOptions; navigationOptions?: NavigationWaitOptions; }, thinkTime?: number): Promise<{ error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; selectAndMeasure(actionName: string, element: Selector | ElementHandle, selection: string, navigationOptions?: NavigationWaitOptions, thinkTime?: number): Promise<{ error: string; } | { error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; typeAndMeasure(actionName: string, element: Selector | ElementHandle, input: { text: string; pressEnter: boolean; }, navigationOptions?: NavigationWaitOptions, thinkTime?: number): Promise<{ error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; scrollAndMeasure(actionName: string, option: { pixels?: { down: number; right: number; }; elementInToView?: Selector | ElementHandle; }, thinkTime?: number): Promise<{ error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; hoverAndMeasure(actionName: string, element: Selector | ElementHandle, thinkTime?: number): Promise<{ error: string; action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; getCLS(actionName?: string): Promise<CLS[] | undefined>; getFID(actionName?: string): Promise<{ URL: string; actionName: string | undefined; value: number; startTime: number | undefined; } | undefined>; getLCP(actionName?: string): Promise<LCP[] | undefined>; getPerformanceTiming(): Promise<{ requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; }>; beforeAction(actionName: string, options: { beforeScreenshot: boolean; mode?: string; }): Promise<void>; afterAction(actionName: string, status: boolean, options?: { getCLS?: boolean; getLCP?: boolean; getFID?: boolean; getNavigation?: boolean; mode?: string; }): Promise<{ action: string; status: boolean; CLS: CLS[] | undefined; FID: FID | undefined; LCP: LCP[] | undefined; navigation: { requestStart: any; responseStart: any; responseEnd: any; domInteractive: any; domContentLoadedEventStart: any; domContentLoadedEventEnd: any; domComplete: any; loadEventStart: any; loadEventEnd: any; } | undefined; }>; setEmulation(emulation?: Emulation): Promise<void>; getResults(scenarioName?: string): Promise<Scenario[] | undefined>; getBrowser(): Promise<Browser | undefined>; }