← Public packages
@kentcdodds/kit
Kit.com helpers for subscribers, tags, forms, sequences, and broadcasts.
src/smoke-test.js
43 lines · 1.3 KB · JavaScriptimport {
broadcastSummary,
callParsed,
getCurrentAccount,
getV4Broadcasts,
} from './kit-client.js'
/**
* Read-only smoke: current account + one page of broadcasts.
* Never creates or sends broadcasts/emails.
* Run this first to confirm the `kitApiKey` secret and `api.kit.com` host
* approval work before doing any writes.
*
* @example
* import smokeTest from 'kody:@kentcdodds/kit/smoke-test'
* const result = await smokeTest()
* // => { ok: true, account: { name: '...' }, broadcastCount: 5 }
*/
export default async function smokeTest() {
const accountBody = await getCurrentAccount()
const account = /** @type {{ account?: Record<string, unknown> }} */ (accountBody).account
const page = await callParsed(
getV4Broadcasts,
{ query: { per_page: 5 } },
{ method: 'GET', path: '/v4/broadcasts' },
)
const broadcasts = Array.isArray(
/** @type {{ broadcasts?: unknown[] }} */ (page).broadcasts,
)
? /** @type {{ broadcasts: Record<string, unknown>[] }} */ (page).broadcasts
: []
const summaries = broadcasts.map((b) => broadcastSummary(b)).filter(Boolean)
return {
ok: true,
account: {
id: account?.id ?? null,
name: account?.name ?? null,
plan_type: account?.plan_type ?? null,
},
broadcastCount: summaries.length,
sampleBroadcast: summaries[0] ?? null,
}
}