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
- LocatorLike
- LocatorAssertions
- WindowLike
- PageAssertions
- CallbackAssertions
- PollAssertions
- ExpectConfig
- AssertionOptions
- TextOptions
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;
};