MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / withFaultedReads

Function withFaultedReads

packages/core/sdk/src/executor.test.ts:1296–1324  ·  view source on GitHub ↗
(
  db: FumaDb,
  fault: (key: string) => Promise<never> | undefined,
)

Source from the content-addressed store, hash-verified

1294 * unexercised. `withContext` re-wraps so context-bound handles stay
1295 * faulted. */
1296const withFaultedReads = (
1297 db: FumaDb,
1298 fault: (key: string) => Promise<never> | undefined,
1299): FumaDb => {
1300 const wrap = (inner: FumaDb): FumaDb =>
1301 new Proxy(inner, {
1302 get(target, prop) {
1303 if (prop === "withContext") {
1304 return (context: unknown) =>
1305 wrap((target.withContext as (c: unknown) => FumaDb)(context));
1306 }
1307 if (prop === "findFirst" || prop === "findMany") {
1308 return (table: unknown, query: unknown) =>
1309 fault(`${String(table)}.${prop}`) ??
1310 new Promise<void>((resolve) => {
1311 setImmediate(resolve);
1312 }).then(() =>
1313 (Reflect.get(target, prop) as (t: unknown, q: unknown) => Promise<unknown>).call(
1314 target,
1315 table,
1316 query,
1317 ),
1318 );
1319 }
1320 return Reflect.get(target, prop);
1321 },
1322 });
1323 return wrap(db);
1324};
1325
1326/** A credential provider that works during setup and can be armed to fail
1327 * every later read — the site-2 "credential resolution fails" input. The

Callers 1

executor.test.tsFile · 0.85

Calls 1

wrapFunction · 0.70

Tested by

no test coverage detected