fix(M06-C-R1): 校正控制箱与门锁协议
This commit is contained in:
@@ -48,7 +48,11 @@ assert.equal(issued.at(-1).payload.action, 'ConctolPower');
|
||||
await service.controlDoor(context, { order: 'open', holdopen: 1, delayTime: 4 });
|
||||
assert.equal(issued.at(-1).payload.action, 'Crldoor');
|
||||
await service.playTts(context, { content: '欢迎光临' });
|
||||
assert.equal(issued.at(-1).payload.action, 'PlayTTS');
|
||||
assert.deepEqual(issued.at(-1).payload, {
|
||||
action: 'PlayTTS', content: '欢迎光临', vol: 8, firstPlay: 0,
|
||||
loop: 1, speaker: 0, style: 0, speed: 5, intona: 5,
|
||||
id: '1782120000001'
|
||||
});
|
||||
await service.stopTts(context);
|
||||
assert.equal(issued.at(-1).payload.action, 'stopTTS');
|
||||
await service.controlLed(context, 30);
|
||||
@@ -60,11 +64,21 @@ assert.equal(issued.at(-1).payload.action, 'addtask');
|
||||
await service.cancelTask(context);
|
||||
assert.equal(issued.at(-1).payload.action, 'canceltask');
|
||||
await service.pairSubLock(context, 60);
|
||||
assert.equal(issued.at(-1).payload.action, 'AddDevice');
|
||||
await service.controlSubLock(context, {
|
||||
subID: 'SUB001', order: 'open', delayTime: 4
|
||||
assert.deepEqual(issued.at(-1).payload, {
|
||||
action: 'AddDevice', time: 60, id: '1782120000001'
|
||||
});
|
||||
assert.equal(issued.at(-1).payload.action, 'CtrlDevice');
|
||||
await service.controlSubLock(context, {
|
||||
subtype: '14', subID: 'SUB001', order: 'open', delayTime: 4
|
||||
});
|
||||
assert.deepEqual(issued.at(-1).payload, {
|
||||
action: 'CtrlDevice', subtype: '14', subID: 'SUB001',
|
||||
order: 'open', delayTime: 4, id: '1782120000001'
|
||||
});
|
||||
await service.controlSubLock(context, {
|
||||
subtype: '14', subID: 'SUB001', order: 'setkey', value: '123456654321'
|
||||
});
|
||||
assert.equal(issued.at(-1).payload.value, '123456654321');
|
||||
assert.equal('content' in issued.at(-1).payload, false);
|
||||
await service.readSmartSocket(context, 'workInfo');
|
||||
assert.deepEqual(issued.at(-1).payload, { read: 'workInfo' });
|
||||
await service.switchSmartSocket(context, { on: false, slotNum: 2 });
|
||||
@@ -78,12 +92,13 @@ assert.equal(issued.at(-1).payload.action, 'localtask');
|
||||
assert.equal(issued.at(-1).payload.switch, 'on');
|
||||
await service.clearSmartSocketTask(context, 1);
|
||||
assert.equal(issued.at(-1).payload.action, 'clearTask');
|
||||
assert.equal(audits.length, 14);
|
||||
assert.equal(audits.length, 15);
|
||||
assert.match(audits[0], /DEVICE_COMMAND_REQUESTED/);
|
||||
|
||||
await assert.rejects(
|
||||
() => service.controlSubLock(context, {
|
||||
subID: 'SUB001', order: 'factoryreset', dangerConfirmation: 'CONFIRM_FACTORY_RESET'
|
||||
subtype: '14', subID: 'SUB001', order: 'factoryreset',
|
||||
dangerConfirmation: 'CONFIRM_FACTORY_RESET'
|
||||
}),
|
||||
(error) => error instanceof DeviceControlError
|
||||
&& error.code === 'DEVICE_DANGEROUS_ACTION_FORBIDDEN'
|
||||
@@ -93,11 +108,26 @@ const platformContext = {
|
||||
access: { roles: ['PLATFORM_ADMIN'], capabilities: [], storeIds: [] }
|
||||
};
|
||||
await service.controlSubLock(platformContext, {
|
||||
subID: 'SUB001', order: 'factoryreset', dangerConfirmation: 'CONFIRM_FACTORY_RESET'
|
||||
subtype: '14', subID: 'SUB001', order: 'factoryreset',
|
||||
dangerConfirmation: 'CONFIRM_FACTORY_RESET'
|
||||
});
|
||||
assert.equal(issued.at(-1).payload.order, 'factoryreset');
|
||||
assert.equal('dangerConfirmation' in issued.at(-1).payload, false);
|
||||
|
||||
await assert.rejects(
|
||||
() => service.controlSubLock(context, {
|
||||
subtype: '14', subID: 'SUB001', order: 'delkey', value: 'all'
|
||||
}),
|
||||
(error) => error instanceof DeviceControlError
|
||||
&& error.code === 'DEVICE_DANGEROUS_ACTION_FORBIDDEN'
|
||||
);
|
||||
await service.controlSubLock(platformContext, {
|
||||
subtype: '15', subID: 'SUB002', order: 'delcard', value: 'all',
|
||||
dangerConfirmation: 'CONFIRM_CLEAR_CREDENTIALS'
|
||||
});
|
||||
assert.equal(issued.at(-1).payload.value, 'all');
|
||||
assert.equal(issued.at(-1).payload.subtype, '15');
|
||||
|
||||
await assert.rejects(
|
||||
() => service.controlPower({
|
||||
...context,
|
||||
@@ -192,6 +222,30 @@ const socketResponse = await app.inject({
|
||||
});
|
||||
assert.equal(socketResponse.statusCode, 200);
|
||||
assert.equal(routed.on, true);
|
||||
const subLockResponse = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/device-control/sub-lock/action',
|
||||
headers: { authorization: `Bearer ${token}` },
|
||||
payload: {
|
||||
storeId: '11', roomId: '31', subtype: '14', subID: 'SUB001',
|
||||
order: 'open', delayTime: 4
|
||||
}
|
||||
});
|
||||
assert.equal(subLockResponse.statusCode, 200);
|
||||
const invalidSubLock = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/device-control/sub-lock/action',
|
||||
headers: { authorization: `Bearer ${token}` },
|
||||
payload: { storeId: '11', roomId: '31', subID: 'SUB001', order: 'open' }
|
||||
});
|
||||
assert.equal(invalidSubLock.statusCode, 400);
|
||||
const invalidTts = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/device-control/tts',
|
||||
headers: { authorization: `Bearer ${token}` },
|
||||
payload: { storeId: '11', roomId: '31', content: 'test', volume: 11 }
|
||||
});
|
||||
assert.equal(invalidTts.statusCode, 400);
|
||||
const invalid = await app.inject({
|
||||
method: 'POST',
|
||||
url: '/admin-api/device-control/door',
|
||||
|
||||
Reference in New Issue
Block a user