> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tappify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# CreateTapMockOptions

> How the mock bridge is built, and the options renderWithTap forwards to it.

How the mock bridge is built, and the options `renderWithTap` forwards to it.

## Extended by

* [`RenderWithTapOptions`](/extensions/reference/testing-api/Interface.RenderWithTapOptions)

## Properties

### confirmAnswer?

```ts theme={null}
optional confirmAnswer?: boolean;
```

What `tap.ui.confirm` resolves to. Defaults to `true`.

***

### context?

```ts theme={null}
optional context?: Record<string, unknown>;
```

What `tap.context` holds. Defaults to empty.

***

### extensionId?

```ts theme={null}
optional extensionId?: string;
```

Defaults to `starter`, and has to match `handler`'s own extension id.

***

### extensionName?

```ts theme={null}
optional extensionName?: string;
```

Defaults to `Starter`.

***

### filters?

```ts theme={null}
optional filters?: Partial<TapFilters>;
```

Merged over the fixture filter bar.

***

### handler?

```ts theme={null}
optional handler?: TappifyFetchHandler;
```

Your own handler, so `tap.server.<name>` goes through its real routes.

***

### handlerToken?

```ts theme={null}
optional handlerToken?: string;
```

A token to send to `handler`. Defaults to one the mock signs itself.

***

### installId?

```ts theme={null}
optional installId?: string;
```

Defaults to `ins_test`.

***

### params?

```ts theme={null}
optional params?: Record<string, string>;
```

What `tap.params` holds, in the host's positional shape. Defaults to empty.

***

### project?

```ts theme={null}
optional project?: Partial<{
  apps: TapApp[];
  id: string;
  keywords: TapKeyword[];
  name: string;
  platforms: TapPlatform[];
  releases: TapRelease[];
}>;
```

Merged over the fixture Northlight project.

***

### scopes?

```ts theme={null}
optional scopes?: (
  | "ui:render"
  | "projects:read"
  | "analytics:read"
  | "store.metadata:read"
  | "reviews:read"
  | "crashes:read"
  | "revenue:read"
  | "metrics:write"
  | "alerts:write"
  | "insights:write"
  | "ai:tools"
  | "ai:actions"
  | "store.metadata:write"
  | "autopilot:trigger"
  | "work:create"
  | "work:sync"
  | "storage:write"
  | "messaging:send"
  | "ai:skills")[];
```

What the install granted. Defaults to every scope.

***

### server?

```ts theme={null}
optional server?: Record<string, (input) => unknown>;
```

One function per procedure, answering `tap.server.<name>` in process.

***

### size?

```ts theme={null}
optional size?: TapSize;
```

What `tap.ui.size` reports. Defaults to `slot`.

***

### storage?

```ts theme={null}
optional storage?: Record<string, "singleton" | "collection">;
```

The collections to expose, and the kind of each. Left out, every name works.

***

### theme?

```ts theme={null}
optional theme?: "light" | "dark";
```

What `useTapTheme` reports. Defaults to `light`.
