import React from 'react'; import {createMount} from '@quilted/react-testing'; import { ApiForRenderExtension, RenderExtensionPoint, } from '@shopify/checkout-ui-extensions'; import type {StatefulRemoteSubscribable} from '@remote-ui/async-subscription'; import {ExtensionApiContext} from '../../context'; export const mount = createMount({ context(options) { return options; }, render(element, {extensionApi}) { return ( {element} ); }, }); type DeepPartial = { [P in keyof T]?: DeepPartial; }; export type PartialExtensionApi = DeepPartial< ApiForRenderExtension >; interface Options { extensionApi?: PartialExtensionApi; } export function createMockStatefulRemoteSubscribable( value: T, ): StatefulRemoteSubscribable { const subscribable: StatefulRemoteSubscribable = { get current() { return value; }, subscribe: jest.fn(), destroy: jest.fn(), }; return subscribable; }