feat(M09-B): 完成清洁规则与照片验收闭环
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
import { DeviceControlError } from '../dist/devices/device-control-service.js';
|
||||
|
||||
const calls = [];
|
||||
let activeRoomOrder = false;
|
||||
let currentOrder = {
|
||||
id: 31,
|
||||
tenantId: 7,
|
||||
@@ -17,6 +18,11 @@ let currentOrder = {
|
||||
};
|
||||
const service = new OrderDeviceAutomationService({
|
||||
async execute(sql, params) {
|
||||
if (sql.includes('id <> ?')) {
|
||||
assert.equal(params[0], '7');
|
||||
assert.equal(params[2], '31');
|
||||
return [activeRoomOrder ? [{ id: 32 }] : [], []];
|
||||
}
|
||||
if (sql.includes('FROM qipai_orders')) {
|
||||
assert.equal(params[0], '7');
|
||||
assert.equal(params[1], '31');
|
||||
@@ -91,6 +97,17 @@ await service.handleTask(task({
|
||||
assert.equal(calls.at(-2)[0], 'cancelTask');
|
||||
assert.equal(calls.at(-1)[2].on, false);
|
||||
|
||||
currentOrder = { ...currentOrder, status: 'FINISHED' };
|
||||
activeRoomOrder = true;
|
||||
const callCountBeforeProtectedFinish = calls.length;
|
||||
const protectedFinish = await service.handleTask(task({
|
||||
tenantId: '7', orderId: '31', event: 'ORDER_FINISHED', traceId: 'm09b-finish'
|
||||
}));
|
||||
assert.equal(protectedFinish.skipped, true);
|
||||
assert.equal(protectedFinish.reason, 'ROOM_HAS_ACTIVE_ORDER');
|
||||
assert.equal(calls.length, callCountBeforeProtectedFinish);
|
||||
activeRoomOrder = false;
|
||||
|
||||
currentOrder = { ...currentOrder, roomId: 52, status: 'IN_PROGRESS' };
|
||||
const changed = await service.handleTask(task({
|
||||
tenantId: '7',
|
||||
|
||||
Reference in New Issue
Block a user