feat(M08-B): 增加保洁验收和指派管理
This commit is contained in:
@@ -56,6 +56,10 @@ const app = await buildApp({
|
||||
calls.push(['listMine', input]);
|
||||
return { items: [task('CLAIMED')], total: 1, page: input.page, pageSize: input.pageSize };
|
||||
},
|
||||
async listManage(input) {
|
||||
calls.push(['listManage', input]);
|
||||
return { items: [task(input.status || 'SUBMITTED')], total: 1, page: input.page, pageSize: input.pageSize };
|
||||
},
|
||||
async claim(input) {
|
||||
calls.push(['claim', input]);
|
||||
return task('CLAIMED');
|
||||
@@ -75,6 +79,22 @@ const app = await buildApp({
|
||||
calls.push(['submit', input]);
|
||||
return { ...task('SUBMITTED'), photoUrls: input.photoUrls };
|
||||
},
|
||||
async assign(input) {
|
||||
calls.push(['assign', input]);
|
||||
return { ...task('CLAIMED'), cleanerUserId: input.cleanerUserId };
|
||||
},
|
||||
async complete(input) {
|
||||
calls.push(['complete', input]);
|
||||
return task('COMPLETED');
|
||||
},
|
||||
async reject(input) {
|
||||
calls.push(['reject', input]);
|
||||
return { ...task('REJECTED'), rejectReason: input.reason };
|
||||
},
|
||||
async settlementCandidates(input) {
|
||||
calls.push(['settlementCandidates', input]);
|
||||
return { items: [task('COMPLETED')], total: 1, page: input.page, pageSize: input.pageSize };
|
||||
},
|
||||
async stats(input) {
|
||||
calls.push(['stats', input]);
|
||||
return { byStatus: { SUBMITTED: 2 }, pendingSettlementCents: 1200 };
|
||||
@@ -116,6 +136,15 @@ assert.equal(mine.statusCode, 200);
|
||||
assert.equal(calls.at(-1)[0], 'listMine');
|
||||
assert.equal(calls.at(-1)[1].status, 'CLAIMED');
|
||||
|
||||
const manageList = await app.inject({
|
||||
method: 'GET',
|
||||
url: '/admin-api/cleaning/tasks?status=SUBMITTED',
|
||||
headers: { authorization: `Bearer ${token}` }
|
||||
});
|
||||
assert.equal(manageList.statusCode, 200);
|
||||
assert.equal(calls.at(-1)[0], 'listManage');
|
||||
assert.equal(calls.at(-1)[1].status, 'SUBMITTED');
|
||||
|
||||
const claim = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/app-api/cleaning/tasks/101/claim',
|
||||
@@ -166,6 +195,43 @@ const submit = await app.inject({
|
||||
assert.equal(submit.statusCode, 200);
|
||||
assert.deepEqual(calls.at(-1)[1].photoUrls, ['https://api.txyundm.cn/uploads/cleaning/101.jpg']);
|
||||
|
||||
const assign = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/cleaning/tasks/101/assign',
|
||||
headers: { authorization: `Bearer ${token}` },
|
||||
payload: { cleanerUserId: '33', note: 'manual dispatch' }
|
||||
});
|
||||
assert.equal(assign.statusCode, 200);
|
||||
assert.equal(calls.at(-1)[0], 'assign');
|
||||
assert.equal(calls.at(-1)[1].cleanerUserId, '33');
|
||||
|
||||
const complete = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/cleaning/tasks/101/complete',
|
||||
headers: { authorization: `Bearer ${token}` },
|
||||
payload: { note: 'ok' }
|
||||
});
|
||||
assert.equal(complete.statusCode, 200);
|
||||
assert.equal(calls.at(-1)[0], 'complete');
|
||||
|
||||
const reject = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/cleaning/tasks/101/reject',
|
||||
headers: { authorization: `Bearer ${token}` },
|
||||
payload: { reason: 'photo is unclear' }
|
||||
});
|
||||
assert.equal(reject.statusCode, 200);
|
||||
assert.equal(calls.at(-1)[0], 'reject');
|
||||
assert.equal(calls.at(-1)[1].reason, 'photo is unclear');
|
||||
|
||||
const settlement = await app.inject({
|
||||
method: 'GET',
|
||||
url: '/admin-api/cleaning/settlement-candidates?page=1&pageSize=10',
|
||||
headers: { authorization: `Bearer ${token}` }
|
||||
});
|
||||
assert.equal(settlement.statusCode, 200);
|
||||
assert.equal(calls.at(-1)[0], 'settlementCandidates');
|
||||
|
||||
const stats = await app.inject({
|
||||
method: 'GET',
|
||||
url: '/app-api/cleaning/stats',
|
||||
|
||||
Reference in New Issue
Block a user