DocsAssertions

Assertions

expect is available in every cell. Its assertions wait for the state they name, and accept browser locators, pages, Mac app locators, and windows.

Types#

As declared in the repl.d.ts the skills ship. Constructors are left out: code in a cell is handed these objects and doesn’t build them.

Expect#

interface Expect {
	(target: LocatorLike): LocatorAssertions;
	(target: WindowLike): PageAssertions;
	(target: () => unknown | Promise<unknown>): CallbackAssertions;
	poll<T>(actual: () => T | Promise<T>, messageOrOptions?: string | {
		message?: string;
		timeout?: number;
		intervals?: number[];
	}): PollAssertions<T>;
	configure(options: ExpectConfig): Expect;
}

LocatorLike#

type LocatorLike = Locator | ComputerLocator;

LocatorAssertions#

class LocatorAssertions {
	get not(): LocatorAssertions;
	toBeAttached(options?: AssertionOptions & {
		attached?: boolean;
	}): Promise<void>;
	toBeChecked(options?: AssertionOptions & {
		checked?: boolean;
		indeterminate?: boolean;
	}): Promise<void>;
	toBeDisabled(options?: AssertionOptions): Promise<void>;
	toBeEditable(options?: AssertionOptions & {
		editable?: boolean;
	}): Promise<void>;
	toBeEmpty(options?: AssertionOptions): Promise<void>;
	toBeEnabled(options?: AssertionOptions & {
		enabled?: boolean;
	}): Promise<void>;
	toBeFocused(options?: AssertionOptions): Promise<void>;
	toBeHidden(options?: AssertionOptions): Promise<void>;
	toBeInViewport(options?: AssertionOptions & {
		ratio?: number;
	}): Promise<void>;
	toBeVisible(options?: AssertionOptions & {
		visible?: boolean;
	}): Promise<void>;
	toContainText(expected: string | RegExp | Array<string | RegExp>, options?: TextOptions): Promise<void>;
	toHaveAccessibleDescription(expected: string | RegExp, options?: AssertionOptions & {
		ignoreCase?: boolean;
	}): Promise<void>;
	toHaveAccessibleName(expected: string | RegExp, options?: AssertionOptions & {
		ignoreCase?: boolean;
	}): Promise<void>;
	toHaveAttribute(name: string, options?: AssertionOptions & {
		ignoreCase?: boolean;
	}): Promise<void>;
	toHaveAttribute(name: string, value: string | RegExp, options?: AssertionOptions & {
		ignoreCase?: boolean;
	}): Promise<void>;
	toHaveCount(expected: number, options?: AssertionOptions): Promise<void>;
	toHaveRole(role: AriaRole, options?: AssertionOptions): Promise<void>;
	toHaveText(expected: string | RegExp | Array<string | RegExp>, options?: TextOptions): Promise<void>;
	toHaveValue(expected: string | RegExp, options?: AssertionOptions): Promise<void>;
	toHaveValues(expected: Array<string | RegExp>, options?: AssertionOptions): Promise<void>;
	toMatchAriaSnapshot(expected: string, options?: AssertionOptions): Promise<void>;
}

WindowLike#

type WindowLike = Page | ComputerWindow;

PageAssertions#

class PageAssertions {
	get not(): PageAssertions;
	toHaveURL(expected: string | RegExp | {
		test(input: string | URL): boolean;
	} | ((url: URL) => boolean), options?: AssertionOptions & {
		ignoreCase?: boolean;
	}): Promise<void>;
	toHaveTitle(expected: string | RegExp, options?: AssertionOptions): Promise<void>;
	toMatchAriaSnapshot(expected: string, options?: AssertionOptions): Promise<void>;
}

CallbackAssertions#

class CallbackAssertions {
	toPass(options?: {
		timeout?: number;
		intervals?: number[];
	}): Promise<void>;
}

PollAssertions#

class PollAssertions<T> {
	get not(): PollAssertions<T>;
	toBe(expected: T): Promise<void>;
	toEqual(expected: unknown): Promise<void>;
	toBeTruthy(): Promise<void>;
	toBeFalsy(): Promise<void>;
}

ExpectConfig#

type ExpectConfig = {
	message?: string;
	timeout?: number;
	soft?: boolean;
};

AssertionOptions#

type AssertionOptions = {
	timeout?: number;
	signal?: AbortSignal;
};

TextOptions#

type TextOptions = AssertionOptions & {
	ignoreCase?: boolean;
	useInnerText?: boolean;
};