← Public packages
@kody/salesforce
Salesforce REST helpers for identity, SOQL, multi-org routing, and error investigation.
src/smoke-test.ts
42 lines · 1.4 KB · TypeScriptimport getUserInfo from './get-user-info.ts'
import { optionalString, requireRecord } from './types.ts'
export type SmokeTestInput = {
/** Saved OAuth integration name. Defaults to `salesforce`. */
integrationName?: string
}
/**
* Verify Salesforce OAuth access without returning profile PII.
* @example
* import smokeTest from 'kody:@kody/salesforce/smoke-test'
* const result = await smokeTest()
* // Multi-org: await smokeTest({ integrationName: 'salesforce-sandbox' })
*/
export default async function smokeTest(
params: Partial<SmokeTestInput> & Record<string, unknown> = {},
) {
const input = requireRecord(params, 'smoke-test')
const integrationName = optionalString(input.integrationName, 'integrationName')
const user = await getUserInfo(integrationName ? { integrationName } : {})
const restUrl = user.urls?.rest
let instanceHost: string | null = null
if (typeof restUrl === 'string' && restUrl.length > 0) {
try {
instanceHost = new URL(restUrl).host
} catch {
instanceHost = null
}
}
return {
ok: true,
hasUserId: typeof user.user_id === 'string' && user.user_id.length > 0,
hasOrganizationId:
typeof user.organization_id === 'string' && user.organization_id.length > 0,
hasInstanceUrl: instanceHost !== null,
instanceHost,
userType: typeof user.user_type === 'string' ? user.user_type : null,
active: typeof user.active === 'boolean' ? user.active : null,
}
}