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

Function withFaultedReads

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

Source from the content-addressed store, hash-verified

1184 * unexercised. `withContext` re-wraps so context-bound handles stay
1185 * faulted. */
1186const withFaultedReads = (
1187 db: FumaDb,
1188 fault: (key: string) => Promise<never> | undefined,
1189): FumaDb => {
1190 const wrap = (inner: FumaDb): FumaDb =>
1191 new Proxy(inner, {
1192 get(target, prop) {
1193 if (prop === "withContext") {
1194 return (context: unknown) =>
1195 wrap((target.withContext as (c: unknown) => FumaDb)(context));
1196 }
1197 if (prop === "findFirst" || prop === "findMany") {
1198 return (table: unknown, query: unknown) =>
1199 fault(`${String(table)}.${prop}`) ??
1200 new Promise<void>((resolve) => {
1201 setImmediate(resolve);
1202 }).then(() =>
1203 (Reflect.get(target, prop) as (t: unknown, q: unknown) => Promise<unknown>).call(
1204 target,
1205 table,
1206 query,
1207 ),
1208 );
1209 }
1210 return Reflect.get(target, prop);
1211 },
1212 });
1213 return wrap(db);
1214};
1215
1216/** A credential provider that works during setup and can be armed to fail
1217 * 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