Files
X-Financial/web/tests/steward-actions-service.test.mjs

55 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

import assert from 'node:assert/strict'
import { executeStewardAction } from '../src/services/steward.js'
async function testExecuteStewardActionUsesActionEndpoint() {
let capturedUrl = ''
let capturedOptions = null
global.fetch = async (url, options) => {
capturedUrl = String(url)
capturedOptions = options
return {
ok: true,
async json() {
return {
action_type: 'save_application_draft',
status: 'succeeded',
message: '申请草稿已保存。',
result_payload: {
draft_payload: {
claim_id: 'claim-action-draft',
claim_no: 'A12345678',
status: 'draft'
}
}
}
}
}
}
const payload = await executeStewardAction({
action_type: 'save_application_draft',
message: '保存草稿',
task: {
task_id: 'task-app-1',
task_type: 'expense_application'
}
})
assert.equal(capturedUrl, '/api/v1/steward/actions/execute')
assert.equal(capturedOptions.method, 'POST')
assert.equal(JSON.parse(capturedOptions.body).action_type, 'save_application_draft')
assert.equal(payload.status, 'succeeded')
}
async function run() {
await testExecuteStewardActionUsesActionEndpoint()
console.log('steward actions service tests passed')
}
run().catch((error) => {
console.error(error)
process.exit(1)
})