Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120// Test double for @slack/web-api (only WebClient is used), swapped in via// --import-map. Captures chat calls into the shared slack test state.import { slackTestState as s } from "./slack-test-state.ts";
export class WebClient { chat = { postMessage: (args: Record<string, unknown>) => { if (s.postMessageOverride) return s.postMessageOverride(args); s.calls.push({ method: "postMessage", args }); return Promise.resolve({ ts: "msg.ts" }); }, update: (args: Record<string, unknown>) => { if (s.updateOverride) return s.updateOverride(args); s.calls.push({ method: "update", args }); return Promise.resolve({ ts: "msg.ts" }); }, postEphemeral: (args: Record<string, unknown>) => { if (s.postEphemeralOverride) return s.postEphemeralOverride(args); s.calls.push({ method: "postEphemeral", args }); return Promise.resolve(); }, getPermalink: (args: Record<string, unknown>) => { s.calls.push({ method: "chat.getPermalink", args }); return Promise.resolve({ ok: true, permalink: `https://slack.test/archives/${args.channel}/p${String(args.message_ts).replace(".", "")}`, }); }, }; reactions = { get: (args: Record<string, unknown>) => { s.calls.push({ method: "reactions.get", args }); return s.reactionsGetImpl(args); }, add: (args: Record<string, unknown>) => { s.calls.push({ method: "reactions.add", args }); return Promise.resolve({ ok: true }); }, }; // Mirrors ChatStreamer: `ts` is undefined until the first append or stop. chatStream = (args: Record<string, unknown>) => { if (!s.chatStreamEnabled) { throw new Error("chat streaming is not enabled for this workspace"); } s.calls.push({ method: "chatStream", args }); let ts: string | undefined; let appends = 0; return { get ts() { return ts; }, append: (a: Record<string, unknown>) => { if ( s.streamAppendFailAfter !== null && appends >= s.streamAppendFailAfter ) { return Promise.reject(new Error("stream append failed")); } appends++; ts = "stream.ts"; s.calls.push({ method: "stream.append", args: a }); return Promise.resolve(null); }, stop: (a?: Record<string, unknown>) => { ts = "stream.ts"; s.calls.push({ method: "stream.stop", args: a ?? {} }); if (s.streamStopFail) { return Promise.reject(new Error("stream already closed")); } return Promise.resolve({ ok: true, ts }); }, }; }; conversations = { replies: (args: Record<string, unknown>) => s.repliesImpl(args), join: (args: Record<string, unknown>) => { s.calls.push({ method: "conversations.join", args }); return Promise.resolve({ ok: true }); }, history: (args: Record<string, unknown>) => { s.calls.push({ method: "conversations.history", args }); return s.historyImpl(); }, }; agents = { sessions: { setStatus: (args: Record<string, unknown>) => { if (s.sessionStatusOverride) return s.sessionStatusOverride(args); s.calls.push({ method: "agents.sessions.setStatus", args }); return Promise.resolve({ ok: true }); }, rename: (args: Record<string, unknown>) => { if (s.renameOverride) return s.renameOverride(args); s.calls.push({ method: "agents.sessions.rename", args }); return Promise.resolve({ ok: true }); }, }, }; assistant = { threads: { setStatus: (args: Record<string, unknown>) => { s.calls.push({ method: "assistant.threads.setStatus", args }); return Promise.resolve({ ok: true }); }, }, }; users = { info: (args: Record<string, unknown>) => { s.calls.push({ method: "users.info", args }); return s.usersInfoImpl(args); }, }; views = { publish: (args: Record<string, unknown>) => { s.calls.push({ method: "views.publish", args }); return Promise.resolve({ ok: true }); }, };}