node-switchbot
Version:
The node-switchbot is a Node.js module which allows you to control your Switchbot Devices through Bluetooth (BLE).
62 lines • 2.4 kB
JavaScript
import { describe, expect, it } from 'vitest';
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../device';
import { isServiceDataOfModel } from './ble-guards';
describe('ble service data guards', () => {
it('identifies colorBulbServiceData correctly', () => {
const sample = {
model: SwitchBotBLEModel.ColorBulb,
modelName: SwitchBotBLEModelName.ColorBulb,
modelFriendlyName: SwitchBotBLEModelFriendlyName.ColorBulb,
color_temperature: 3000,
power: true,
state: false,
red: 255,
green: 200,
blue: 150,
brightness: 50,
delay: 0,
preset: 1,
color_mode: 0,
speed: 10,
loop_index: 0,
};
expect(isServiceDataOfModel(sample, SwitchBotBLEModel.ColorBulb)).toBe(true);
expect(isServiceDataOfModel(sample, SwitchBotBLEModel.CeilingLight)).toBe(false);
});
it('identifies ceilingLightServiceData correctly', () => {
const sample = {
model: SwitchBotBLEModel.CeilingLight,
modelName: SwitchBotBLEModelName.CeilingLight,
modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLight,
color_temperature: 3500,
power: false,
state: true,
red: 100,
green: 150,
blue: 200,
brightness: 75,
delay: 5,
preset: 2,
color_mode: 1,
speed: 5,
loop_index: 1,
};
expect(isServiceDataOfModel(sample, SwitchBotBLEModel.CeilingLight)).toBe(true);
expect(isServiceDataOfModel(sample, SwitchBotBLEModel.Meter)).toBe(false);
});
it('identifies meterServiceData correctly', () => {
const sample = {
model: SwitchBotBLEModel.Meter,
modelName: SwitchBotBLEModelName.Meter,
modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter,
celsius: 22.5,
fahrenheit: 72.5,
fahrenheit_mode: false,
humidity: 45,
battery: 90,
};
expect(isServiceDataOfModel(sample, SwitchBotBLEModel.Meter)).toBe(true);
expect(isServiceDataOfModel(sample, SwitchBotBLEModel.ColorBulb)).toBe(false);
});
});
//# sourceMappingURL=ble-guards.test.js.map