UNPKG

matterbridge-roborock-vacuum-plugin

Version:
81 lines 3.66 kB
import { describe, expect, it } from 'vitest'; import { B01VacuumModeResolver } from '../../../roborockCommunication/helper/B01VacuumModeResolver.js'; const { resolveVacuumMode, resolveMopMode, resolveCleanRoute, resolveQ7CleanMode, resolveQ10CleanMode, resolveMopModeWithDistanceOff, } = B01VacuumModeResolver; // Match the real values in ../../behaviors/roborock.vacuum/b01/q7.ts const Q7VacuumSuctionPower = { Quiet: 101, Balanced: 102, Turbo: 103, Max: 104, Off: 105, Custom: 106, MaxPlus: 108, }; const Q7MopWaterFlow = { Off: 200, Low: 201, Medium: 202, High: 203, Custom: 204, CustomizeWithDistanceOff: 207, }; const Q7MopRoute = { Standard: 300, Deep: 301, Custom: 302, DeepPlus: 303, Fast: 304, }; describe('B01VacuumModeResolver', () => { describe('resolveVacuumMode', () => { it('returns correct mode for each suctionPower', () => { expect(resolveVacuumMode(Q7VacuumSuctionPower.Quiet)).toBe(1); expect(resolveVacuumMode(Q7VacuumSuctionPower.Balanced)).toBe(2); expect(resolveVacuumMode(Q7VacuumSuctionPower.Turbo)).toBe(3); expect(resolveVacuumMode(Q7VacuumSuctionPower.Max)).toBe(4); expect(resolveVacuumMode(Q7VacuumSuctionPower.MaxPlus)).toBe(5); expect(resolveVacuumMode(Q7VacuumSuctionPower.Off)).toBe(0); expect(resolveVacuumMode(99)).toBe(0); }); }); describe('resolveMopMode', () => { it('returns correct mode for each waterFlow', () => { expect(resolveMopMode(Q7MopWaterFlow.High)).toBe(3); expect(resolveMopMode(Q7MopWaterFlow.Medium)).toBe(2); expect(resolveMopMode(Q7MopWaterFlow.Low)).toBe(1); expect(resolveMopMode(Q7MopWaterFlow.Off)).toBe(0); expect(resolveMopMode(99)).toBe(0); }); }); describe('resolveCleanRoute', () => { it('returns correct route for mopRoute', () => { expect(resolveCleanRoute(Q7MopRoute.Standard)).toBe(0); expect(resolveCleanRoute(Q7MopRoute.Deep)).toBe(1); expect(resolveCleanRoute(99)).toBe(0); }); }); describe('resolveQ7CleanMode', () => { it('returns 1 for vacuum+mop, 0 for vacuum only, 2 for mop only, 1 for neither', () => { expect(resolveQ7CleanMode(Q7VacuumSuctionPower.Balanced, Q7MopWaterFlow.Medium)).toBe(1); // both expect(resolveQ7CleanMode(Q7VacuumSuctionPower.Balanced, Q7MopWaterFlow.Off)).toBe(0); // vacuum only expect(resolveQ7CleanMode(Q7VacuumSuctionPower.Off, Q7MopWaterFlow.Medium)).toBe(2); // mop only expect(resolveQ7CleanMode(Q7VacuumSuctionPower.Off, Q7MopWaterFlow.Off)).toBe(1); // neither }); }); describe('resolveQ10CleanMode', () => { it('returns 1 for vacuum+mop, 2 for vacuum only, 3 for mop only, 1 for neither', () => { expect(resolveQ10CleanMode(1, 1)).toBe(1); // both expect(resolveQ10CleanMode(1, 0)).toBe(2); // vacuum only expect(resolveQ10CleanMode(0, 1)).toBe(3); // mop only expect(resolveQ10CleanMode(0, 0)).toBe(1); // neither }); }); describe('resolveMopModeWithDistanceOff', () => { it('returns 4 if distance_off > 0, else resolveMopMode', () => { expect(resolveMopModeWithDistanceOff(Q7MopWaterFlow.High, 5)).toBe(4); expect(resolveMopModeWithDistanceOff(Q7MopWaterFlow.High, 0)).toBe(3); expect(resolveMopModeWithDistanceOff(Q7MopWaterFlow.Off, 0)).toBe(0); }); }); }); //# sourceMappingURL=B01VacuumModeResolver.test.js.map