web-vitals-test
Version:
Test for Web Vitals metrics
258 lines (257 loc) • 8.7 kB
TypeScript
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>;
}