/** * 测试用假 provider:把投递写入注入的 sink,而不真发出。 * 让 send / sendTemplate 编排无需网络即可测,并断言投出的内容正确。 */ /** * @param {(record: { msg: import('../index.js').SendMessage, message_id: string }) => void} [sink] * 每次投递回调(也可传入数组的 push)。 * @returns {import('../index.js').Provider} */ export function createFakeProvider(sink) { let n = 0 const emit = typeof sink === 'function' ? sink : () => {} return { async send(msg) { n += 1 const message_id = `fake-${n}-${Date.now()}` emit({ msg, message_id }) return { message_id, provider: 'fake', to: msg.to } }, } }