Skip to content

Instantly share code, notes, and snippets.

@cefn
Created January 19, 2025 15:55
Show Gist options
  • Save cefn/f01a25fb6a886453a315cfb68c9fbae5 to your computer and use it in GitHub Desktop.
Save cefn/f01a25fb6a886453a315cfb68c9fbae5 to your computer and use it in GitHub Desktop.
async function withMockedProperty<
Obj extends NonNullable<unknown>,
Name extends keyof Obj,
>(obj: Obj, name: Name, mock: Obj[Name], procedure: () => Promise<T>) {
const originalProperty = obj[name];
try {
obj[name] = mock;
await procedure();
} finally {
obj[name] = originalProperty;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment