feat(M08-B): 补后台协作与结算详情

This commit is contained in:
Codex
2026-06-30 10:02:17 +08:00
parent 9506021b29
commit f59beb0e75
15 changed files with 529 additions and 23 deletions
+34
View File
@@ -114,6 +114,13 @@ const app = await buildApp({
calls.push(['listSettlements', input]);
return { items: [settlementResponse(input.status || 'DRAFT')], total: 1, page: input.page, pageSize: input.pageSize };
},
async getSettlementDetail(input) {
calls.push(['getSettlementDetail', input]);
return {
settlement: settlementResponse('DRAFT'),
items: [settlementItemResponse()]
};
},
async generateSettlement(input) {
calls.push(['generateSettlement', input]);
return settlementResponse('DRAFT');
@@ -367,6 +374,15 @@ assert.equal(settlementList.statusCode, 200);
assert.equal(calls.at(-1)[0], 'listSettlements');
assert.equal(calls.at(-1)[1].status, 'DRAFT');
const settlementDetail = await app.inject({
method: 'GET',
url: '/admin-api/cleaning/settlements/501',
headers: { authorization: `Bearer ${token}` }
});
assert.equal(settlementDetail.statusCode, 200);
assert.equal(calls.at(-1)[0], 'getSettlementDetail');
assert.equal(settlementDetail.json().data.items[0].taskNo, 'CLN-20260625-0001');
const generatedSettlement = await app.inject({
method: 'POST',
url: '/admin-api/cleaning/settlements',
@@ -542,6 +558,24 @@ function settlementResponse(status) {
};
}
function settlementItemResponse() {
return {
id: '601',
settlementId: '501',
taskId: '101',
taskNo: 'CLN-20260625-0001',
orderNo: 'O301',
storeName: 'Test Store',
roomName: 'A Room',
roomNo: 'A01',
cleanerUserId: '31',
cleanerName: 'Cleaner',
rewardCents: 600,
completedAt: new Date(),
createdAt: new Date()
};
}
function member(memberRole, userId, rewardCents) {
return {
id: `${userId}01`,