UNPKG

matterbridge-roborock-vacuum-plugin

Version:
88 lines 3.73 kB
import { beforeEach, describe, expect, it, vi } from 'vitest'; import { RoborockMatterbridgePlatform } from '../module.js'; import { asPartial, createMockLogger, createMockMatterbridge } from './helpers/testUtils.js'; vi.mock('../services/roborockService.js'); vi.mock('../types/roborockVacuumCleaner.js'); vi.mock('node-persist'); function createMockConfig(overrides = {}) { return asPartial({ name: 'Test Platform', type: 'DynamicPlatform', authentication: { username: 'test@example.com', region: 'US', forceAuthentication: false, authenticationMethod: 'VerificationCode', }, pluginConfiguration: { whiteList: [], enableServerMode: false, enableMultipleMap: false, sanitizeSensitiveLogs: false, refreshInterval: 30, debug: false, unregisterOnShutdown: false, }, advancedFeature: { enableAdvancedFeature: false, settings: { clearStorageOnStartup: false, showRoutinesAsRoom: false, includeDockStationStatus: false, includeVacuumErrorStatus: false, forceRunAtDefault: false, useVacationModeToSendVacuumToDock: false, enableCleanModeMapping: false, cleanModeSettings: { vacuuming: { fanMode: 'Balanced', mopRouteMode: 'Standard' }, mopping: { waterFlowMode: 'Medium', mopRouteMode: 'Standard', distanceOff: 25 }, vacmop: { fanMode: 'Balanced', waterFlowMode: 'Medium', mopRouteMode: 'Standard', distanceOff: 25 }, }, overrideMatterConfiguration: false, matterOverrideSettings: { matterVendorName: 'xxx', matterVendorId: 123, matterProductName: 'yy', matterProductId: 456, }, enableEmailNotification: false, emailNotificationSettings: {}, }, }, ...overrides, }); } describe('RoborockMatterbridgePlatform', () => { let mockMatterbridge; let mockLogger; let mockConfig; beforeEach(() => { mockLogger = createMockLogger(); mockMatterbridge = createMockMatterbridge(); mockConfig = createMockConfig(); }); describe('constructor', () => { it('should set debug log level when debug is enabled', () => { const debugConfig = createMockConfig({ pluginConfiguration: { ...mockConfig.pluginConfiguration, debug: true, }, }); const validMatterbridge = createMockMatterbridge({}); const platform = new RoborockMatterbridgePlatform(validMatterbridge, mockLogger, debugConfig); platform.verifyMatterbridgeVersion = vi.fn().mockReturnValue(true); expect(platform.log.logLevel).toBe("debug" /* LogLevel.DEBUG */); }); }); describe('lifecycle methods', () => { it('should change logger level when onChangeLoggerLevel is called', async () => { const validMatterbridge = createMockMatterbridge({}); const platform = new RoborockMatterbridgePlatform(validMatterbridge, mockLogger, mockConfig); platform.verifyMatterbridgeVersion = vi.fn().mockReturnValue(true); await platform.onChangeLoggerLevel("error" /* LogLevel.ERROR */); expect(platform.log.logLevel).toBe("error" /* LogLevel.ERROR */); }); }); }); //# sourceMappingURL=module.test.js.map