feat(M09-B): 完成清洁规则与照片验收闭环

This commit is contained in:
Codex
2026-08-10 21:49:07 +08:00
parent b507e87999
commit bc7cb8fab9
24 changed files with 1650 additions and 81 deletions
@@ -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',