UNPKG

matterbridge-roborock-vacuum-plugin

Version:
88 lines 3.17 kB
import { describe, expect, test } from 'vitest'; import { DockErrorCode, VacuumErrorCode } from '../../../roborockCommunication/enums/vacuumAndDockErrorCode.js'; import { DeviceStatus } from '../../../roborockCommunication/models/deviceStatus.js'; describe('DeviceStatus model', () => { test('parses battery and no-error correctly', () => { const msg = { msg_ver: 1, msg_seq: 1, state: 0, battery: 75, clean_time: 0, clean_area: 0, error_code: VacuumErrorCode.None, map_present: 0, in_cleaning: 0, in_returning: 0, in_fresh_state: 0, lab_status: 0, water_box_status: 0, fan_power: 0, dnd_enabled: 0, map_status: 0, is_locating: 0, lock_status: 0, water_box_mode: 0, distance_off: 0, water_box_carriage_status: 0, mop_forbidden_enable: 0, adbumper_status: [], dock_type: 1, dust_collection_status: 0, auto_dust_collection: 0, debug_mode: 0, switch_map_mode: 0, dock_error_status: DockErrorCode.None, charge_status: 0, }; const ds = new DeviceStatus('test-duid', msg); expect(ds.getBattery()).toBe(75); expect(ds.getVacuumErrorCode()).toBe(VacuumErrorCode.None); expect(ds.getDockErrorCode()).toBe(DockErrorCode.None); const dock = ds.getDockInfo(); expect(dock).toBeDefined(); expect(ds.errorStatus.hasError()).toBe(false); }); test('recognizes vacuum and dock errors correctly', () => { const msg = { msg_ver: 1, msg_seq: 2, state: 0, battery: 10, clean_time: 0, clean_area: 0, error_code: VacuumErrorCode.RobotTrapped, map_present: 0, in_cleaning: 0, in_returning: 0, in_fresh_state: 0, lab_status: 0, water_box_status: 0, fan_power: 0, dnd_enabled: 0, map_status: 0, is_locating: 0, lock_status: 0, water_box_mode: 0, distance_off: 0, water_box_carriage_status: 0, mop_forbidden_enable: 0, adbumper_status: [], dock_type: 1, dust_collection_status: 0, auto_dust_collection: 0, debug_mode: 0, switch_map_mode: 0, dock_error_status: DockErrorCode.DuctBlockage, charge_status: 0, }; const ds = new DeviceStatus('test-duid', msg); expect(ds.getBattery()).toBe(10); expect(ds.getVacuumErrorCode()).toBe(VacuumErrorCode.RobotTrapped); expect(ds.getDockErrorCode()).toBe(DockErrorCode.DuctBlockage); expect(ds.errorStatus.hasError()).toBe(true); expect(ds.errorStatus.isStuck()).toBe(true); expect(ds.errorStatus.isBinFull()).toBe(true); }); }); //# sourceMappingURL=deviceStatus.test.js.map