import type {SubscribableSignalLike} from '@shopify/ui-extensions/checkout'; /** * Creates a mock `SubscribableSignalLike` that wraps a static value. * The `subscribe` callback is never invoked since test values are static. */ export function createSubscribableSignalLike( value: T, ): SubscribableSignalLike { return { value, current: value, subscribe: () => () => {}, destroy: async () => {}, }; } /** * A minimal read-only signal for surfaces (like POS) that use * `ReadonlySignalLike` instead of `SubscribableSignalLike`. */ export interface MockReadonlySignalLike { readonly value: T; subscribe(fn: (value: T) => void): () => void; } /** * Creates a mock `ReadonlySignalLike` that wraps a static value. */ export function createReadonlySignalLike( value: T, ): MockReadonlySignalLike { return { value, subscribe: () => () => {}, }; }