55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
|
|
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)
|
||
|
|
})
|