UNPKG

matterbridge-roborock-vacuum-plugin

Version:
182 lines (169 loc) 6.89 kB
import { getSupportedAreas } from '../../initialData/getSupportedAreas'; import { RoomMap } from '../../model/RoomMap'; import { Room } from '../../roborockCommunication/Zmodel/room'; const mockLogger = { debug: jest.fn(), error: jest.fn(), notice: jest.fn(), }; describe('getSupportedAreas', () => { beforeEach(() => { jest.clearAllMocks(); }); it('returns default area when rooms and roomMap are empty', () => { const { supportedAreas } = getSupportedAreas( [ { id: 2775739, name: 'Garage' }, { id: 1474466, name: 'Outside' }, { id: 1459590, name: 'AAA room' }, { id: 1459587, name: 'BBB’s Room' }, { id: 1459580, name: 'CCC’s room' }, { id: 1458155, name: 'Dining room' }, { id: 1457889, name: 'Bathroom' }, { id: 1457888, name: 'Living room' }, { id: 991195, name: 'Downstairs Bathroom' }, { id: 991190, name: 'Garage Entryway' }, { id: 991187, name: 'TV Room' }, { id: 991185, name: 'Bedroom' }, { id: 612205, name: 'DDD’s Room' }, { id: 612204, name: 'Upstairs Bathroom' }, { id: 612202, name: 'Hallway' }, { id: 612200, name: 'EEE Room' }, { id: 609148, name: 'Dining Room' }, { id: 609146, name: 'Kitchen' }, { id: 609145, name: 'Living Room' }, ], { rooms: [ { id: 16, globalId: 609146, displayName: 'Kitchen' }, { id: 17, globalId: 1457889, displayName: 'Bathroom' }, { id: 18, globalId: 612202, displayName: 'Hallway' }, { id: 19, globalId: 1458155, displayName: 'Dining room' }, { id: 20, globalId: 1457888, displayName: 'Living room' }, { id: 21, globalId: 1459580, displayName: 'BBB’s room' }, { id: 22, globalId: 612205, displayName: 'CCC’s Room' }, { id: 23, globalId: 1474466, displayName: 'Outside' }, ], } as RoomMap, false, // enableMultipleMap mockLogger as any, ); expect(supportedAreas.length).toEqual(8); }); it('returns default area when rooms and roomMap are empty', () => { const { supportedAreas } = getSupportedAreas( [ { id: 11453731, name: 'Living room' }, { id: 11453727, name: 'Kitchen' }, { id: 11453415, name: 'Bathroom' }, { id: 11453409, name: 'Emile’s Room' }, { id: 11453404, name: 'Nadia’s Room' }, { id: 11453398, name: 'Hallway' }, { id: 11453391, name: 'Dining room' }, { id: 11453384, name: 'Outside' }, ], { rooms: [ { id: 16, globalId: 2775739, displayName: undefined }, { id: 17, globalId: 991195, displayName: undefined }, { id: 18, globalId: 991187, displayName: undefined }, { id: 19, globalId: 991185, displayName: undefined }, { id: 20, globalId: 991190, displayName: undefined }, ], } as RoomMap, false, // enableMultipleMap mockLogger as any, ); expect(supportedAreas.length).toEqual(5); }); it('returns default area when rooms and roomMap are empty', () => { const { supportedAreas } = getSupportedAreas( [ { id: 11453731, name: 'Living room' }, { id: 11453727, name: 'Kitchen' }, { id: 11453415, name: 'Bathroom' }, { id: 11453409, name: 'Emile’s Room' }, { id: 11453404, name: 'Nadia’s Room' }, { id: 11453398, name: 'Hallway' }, { id: 11453391, name: 'Dining room' }, { id: 11453384, name: 'Outside' }, ], { rooms: [ { id: 16, globalId: 2775739, displayName: undefined }, { id: 17, globalId: 991195, displayName: undefined }, { id: 18, globalId: 991187, displayName: undefined }, { id: 19, globalId: 991185, displayName: undefined }, { id: 20, globalId: 991190, displayName: undefined }, ], } as RoomMap, false, // enableMultipleMap mockLogger as any, ); expect(supportedAreas.length).toEqual(5); }); it('returns default area when rooms and roomMap are empty', () => { const vacuumRooms: Room[] = [ { id: 11100845, name: 'Kitchen' }, { id: 11100849, name: 'Study' }, { id: 11100842, name: 'Living room' }, { id: 11100847, name: 'Bedroom' }, { id: 12461114, name: 'Guest bedroom' }, { id: 12461109, name: 'Master bedroom' }, { id: 12461111, name: 'Balcony' }, ]; const roomMap: RoomMap = { rooms: [ { id: 16, globalId: 2775739, displayName: undefined, alternativeId: '161' }, { id: 17, globalId: 991195, displayName: undefined, alternativeId: '171' }, { id: 18, globalId: 991187, displayName: undefined, alternativeId: '181' }, { id: 19, globalId: 991185, displayName: undefined, alternativeId: '191' }, { id: 20, globalId: 991190, displayName: undefined, alternativeId: '201' }, ], }; const { supportedAreas } = getSupportedAreas(vacuumRooms, roomMap, false, mockLogger as any); expect(supportedAreas.length).toEqual(5); }); it('returns default area when rooms and roomMap are empty', () => { const vacuumRooms: Room[] = [ { id: 11100845, name: 'Kitchen' }, { id: 11100849, name: 'Study' }, { id: 11100842, name: 'Living room' }, { id: 11100847, name: 'Bedroom' }, { id: 11100842, name: 'Living room' }, { id: 12461114, name: 'Guest bedroom' }, { id: 12461109, name: 'Master bedroom' }, { id: 12461111, name: 'Balcony' }, ]; const roomMap: RoomMap = { rooms: [ { id: 1, globalId: 11100845, displayName: 'Kitchen', alternativeId: '114', mapId: 0 }, { id: 2, globalId: 11100849, displayName: 'Study', alternativeId: '29', mapId: 0 }, { id: 3, globalId: 11100842, displayName: 'Living room', alternativeId: '36', mapId: 0 }, { id: 4, globalId: 11100847, displayName: 'Bedroom', alternativeId: '41', mapId: 0 }, { id: 1, globalId: 11100842, displayName: 'Living room', alternativeId: '16', mapId: 1 }, { id: 2, globalId: 12461114, displayName: 'Guest bedroom', alternativeId: '23', mapId: 1 }, { id: 3, globalId: 12461109, displayName: 'Master bedroom', alternativeId: '32', mapId: 1 }, { id: 4, globalId: 12461111, displayName: 'Balcony', alternativeId: '47', mapId: 1 }, ], mapInfo: [ { id: 0, name: 'First Map', }, { id: 1, name: 'Second Map', }, ], }; const mockLogger1 = { debug: jest.fn(), notice: jest.fn(), error: jest.fn(), }; const { supportedAreas, supportedMaps } = getSupportedAreas(vacuumRooms, roomMap, true, mockLogger1 as any); expect(supportedAreas.length).toEqual(8); expect(supportedMaps.length).toEqual(2); }); });