diff --git a/packages/playwright-ct-vue/index.d.ts b/packages/playwright-ct-vue/index.d.ts index f9a937719f0a2..e3cd55a7f13a3 100644 --- a/packages/playwright-ct-vue/index.d.ts +++ b/packages/playwright-ct-vue/index.d.ts @@ -41,14 +41,17 @@ type JsonObject = { [Key in string]?: JsonValue }; type Slot = string | string[]; -export interface MountOptions { +export interface MountOptions< + HooksConfig extends JsonObject, + Props extends Record +> { props?: Props; slots?: Record & { default?: Slot }; on?: Record; hooksConfig?: HooksConfig; } -interface MountResult extends Locator { +interface MountResult> extends Locator { unmount(): Promise; update(options: Omit, 'hooksConfig'>): Promise; } @@ -62,9 +65,12 @@ export interface ComponentFixtures { mount(component: JSX.Element): Promise; mount( component: any, - options?: MountOptions - ): Promise>; - mount( + options?: MountOptions> + ): Promise>>; + mount< + HooksConfig extends JsonObject, + Props extends Record = Record + >( component: any, options: MountOptions & { props: Props } ): Promise>; diff --git a/packages/playwright-ct-vue2/index.d.ts b/packages/playwright-ct-vue2/index.d.ts index f9a937719f0a2..5f338cef3be0c 100644 --- a/packages/playwright-ct-vue2/index.d.ts +++ b/packages/playwright-ct-vue2/index.d.ts @@ -41,14 +41,17 @@ type JsonObject = { [Key in string]?: JsonValue }; type Slot = string | string[]; -export interface MountOptions { +export interface MountOptions< + HooksConfig extends JsonObject, + Props extends Record +> { props?: Props; slots?: Record & { default?: Slot }; on?: Record; hooksConfig?: HooksConfig; } -interface MountResult extends Locator { +interface MountResult> extends Locator { unmount(): Promise; update(options: Omit, 'hooksConfig'>): Promise; } @@ -62,9 +65,12 @@ export interface ComponentFixtures { mount(component: JSX.Element): Promise; mount( component: any, - options?: MountOptions - ): Promise>; - mount( + options?: MountOptions> + ): Promise>>; + mount< + HooksConfig extends JsonObject, + Props extends Record = Record + >( component: any, options: MountOptions & { props: Props } ): Promise>;