This commit is contained in:
2026-07-21 07:42:18 +08:00 Unverified
parent 1287544c41
commit e3a4ec81db
7 changed files with 139 additions and 32 deletions
+12 -5
View File
@@ -617,6 +617,7 @@ try {
const adminRegistrations = await admin.request('/api/admin/registrations');
const adminRegistration = adminRegistrations.data.registrations.find(item => item.id === registrationId);
assert.equal(adminRegistration.status, 'pending', '新报名应进入管理员审核队列');
assert.ok(adminRegistration.exam?.name && adminRegistration.schoolName && adminRegistration.gradeName && adminRegistration.className, '报名审核列表应提供考试、学校、年级和班级筛选字段');
const schoolFlows = await schoolAdmin.request('/api/admin/workflow-instances');
const registrationFlow = schoolFlows.data.instances.find(item => item.businessId === registrationId && item.status === 'pending');
@@ -647,10 +648,16 @@ try {
assert.ok(schoolPaymentList.data.registrations.some(item => item.id === registrationId), '校级管理员应能查看本校缴费名单');
assert.ok(classPaymentList.data.registrations.some(item => item.id === registrationId), '班级负责人应能查看本班缴费名单');
assert.equal(classPaymentList.data.canConfirmPayment, true, '班级负责人应取得缴费确认能力');
assert.equal(superPaymentList.data.canConfirmPayment, false, '超级管理员只能查看和导出,不得代班确认');
assert.equal((await admin.request(`/api/admin/payments/${registrationId}`, { method: 'PATCH' })).response.status, 403, '级管理员不得确认考生缴费');
assert.equal((await schoolAdmin.request(`/api/admin/payments/${registrationId}`, { method: 'PATCH' })).response.status, 403, '校级管理员不得确认考生缴费');
const confirmedPayment = await classAdmin.request(`/api/admin/payments/${registrationId}`, { method: 'PATCH' });
assert.equal(superPaymentList.data.canUpdatePayment, true, '超级管理员应能修改全局范围缴费状态');
assert.equal(schoolPaymentList.data.canUpdatePayment, true, '级管理员应能修改本校范围缴费状态');
assert.ok(superPaymentList.data.registrations.find(item => item.id === registrationId)?.gradeName, '缴费名单应提供年级字段用于筛选');
const superConfirmedPayment = await admin.request(`/api/admin/payments/${registrationId}`, { method: 'PATCH', body: { status: 'paid' } });
assert.equal(superConfirmedPayment.response.status, 200, '超级管理员应能将负责范围考生标记为已缴费');
const schoolRevertedPayment = await schoolAdmin.request(`/api/admin/payments/${registrationId}`, { method: 'PATCH', body: { status: 'unpaid' } });
assert.equal(schoolRevertedPayment.response.status, 200, '校级管理员应能将本校考生改回待缴费');
assert.equal(schoolRevertedPayment.data.payment.paidAt, null, '改回待缴费后应清除原确认时间');
assert.equal(schoolRevertedPayment.data.payment.paidBy, null, '改回待缴费后应清除原确认人');
const confirmedPayment = await classAdmin.request(`/api/admin/payments/${registrationId}`, { method: 'PATCH', body: { status: 'paid' } });
assert.equal(confirmedPayment.response.status, 200, '班级负责人应能在线下收款后确认缴费');
assert.equal(confirmedPayment.data.payment.status, 'paid');
assert.ok(confirmedPayment.data.payment.paidAt && confirmedPayment.data.payment.paidByName, '缴费确认应记录时间和办理人');
@@ -950,7 +957,7 @@ try {
console.log('✓ 校级按班级批量申领、终审原子建号与结果返回');
console.log('✓ 结构化考点考场档案、变更审批与班级只读边界');
console.log('✓ 本校班级/班级管理员管理与多资源 Excel 导入导出');
console.log('✓ 班级负责人线下缴费确认、状态同步与三级名单导出');
console.log('✓ 三级管理员范围内缴费状态修改、状态同步与名单导出');
console.log('✓ 成绩录入、发布与考生查询');
console.log('✓ 成绩复议、班级审批、范围匹配与多人均分');
} finally {