node-switchbot 3.4.3 → 3.4.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/npm-version-script.cjs +81 -0
- package/dist/device/woplugmini_jp.d.ts +1 -1
- package/dist/device/woplugmini_jp.d.ts.map +1 -1
- package/dist/device/woplugmini_jp.js.map +1 -1
- package/dist/switchbot-openapi.d.ts +13 -13
- package/dist/switchbot-openapi.d.ts.map +1 -1
- package/dist/switchbot-openapi.js +50 -35
- package/dist/switchbot-openapi.js.map +1 -1
- package/dist/test/device.test.js +7 -6
- package/dist/test/device.test.js.map +1 -1
- package/dist/test/switchbot-openapi.test.js +8 -8
- package/dist/test/switchbot-openapi.test.js.map +1 -1
- package/dist/test/wobulb.test.js +1 -1
- package/dist/test/wobulb.test.js.map +1 -1
- package/dist/test/wohand.test.js +1 -1
- package/dist/test/wohand.test.js.map +1 -1
- package/dist/test/wohumi.test.js +4 -4
- package/dist/test/wohumi.test.js.map +1 -1
- package/dist/test/wohumi2.test.js +4 -4
- package/dist/test/wohumi2.test.js.map +1 -1
- package/dist/test/woleak.test.js +2 -1
- package/dist/test/woleak.test.js.map +1 -1
- package/dist/test/woplugmini.test.js +17 -16
- package/dist/test/woplugmini.test.js.map +1 -1
- package/dist/test/woplugmini_jp.test.js +17 -16
- package/dist/test/woplugmini_jp.test.js.map +1 -1
- package/dist/test/wosensorth.test.js +2 -1
- package/dist/test/wosensorth.test.js.map +1 -1
- package/dist/test/wosensorthplus.test.js +2 -1
- package/dist/test/wosensorthplus.test.js.map +1 -1
- package/dist/test/wosensorthpro.test.js +2 -1
- package/dist/test/wosensorthpro.test.js.map +1 -1
- package/dist/test/wosensorthproco2.test.js +2 -1
- package/dist/test/wosensorthproco2.test.js.map +1 -1
- package/dist/test/wosmartlock.test.js +11 -11
- package/dist/test/wosmartlock.test.js.map +1 -1
- package/dist/test/wosmartlockpro.test.js +10 -10
- package/dist/test/wosmartlockpro.test.js.map +1 -1
- package/docs/classes/Advertising.html +6 -6
- package/docs/classes/SwitchBotBLE.html +8 -8
- package/docs/classes/SwitchBotOpenAPI.html +7 -7
- package/docs/classes/SwitchbotDevice.html +13 -13
- package/docs/classes/WoBlindTilt.html +24 -24
- package/docs/classes/WoBulb.html +22 -22
- package/docs/classes/WoCeilingLight.html +25 -25
- package/docs/classes/WoContact.html +15 -15
- package/docs/classes/WoCurtain.html +21 -21
- package/docs/classes/WoHand.html +20 -20
- package/docs/classes/WoHub2.html +15 -15
- package/docs/classes/WoHumi.html +22 -22
- package/docs/classes/WoIOSensorTH.html +16 -16
- package/docs/classes/WoPlugMiniUS.html +20 -20
- package/docs/classes/WoPresence.html +15 -15
- package/docs/classes/WoSensorTH.html +13 -13
- package/docs/classes/WoSmartLock.html +31 -31
- package/docs/classes/WoSmartLockPro.html +31 -31
- package/docs/classes/WoStrip.html +22 -22
- package/docs/enums/LogLevel.html +2 -2
- package/docs/enums/SwitchBotBLEModel.html +2 -2
- package/docs/enums/SwitchBotBLEModelFriendlyName.html +2 -2
- package/docs/enums/SwitchBotBLEModelName.html +2 -2
- package/docs/enums/SwitchBotModel.html +2 -2
- package/docs/interfaces/AdvertisementData.html +2 -2
- package/docs/interfaces/Chars.html +2 -2
- package/docs/interfaces/ErrorObject.html +2 -2
- package/docs/interfaces/NobleTypes.html +2 -2
- package/docs/interfaces/Params.html +2 -2
- package/docs/interfaces/Rule.html +2 -2
- package/docs/interfaces/ServiceData.html +2 -2
- package/docs/interfaces/SwitchBotBLEDevice.html +2 -2
- package/docs/interfaces/WebhookDetail.html +2 -2
- package/docs/interfaces/ad.html +2 -2
- package/docs/interfaces/body.html +2 -2
- package/docs/interfaces/bodyChange.html +2 -2
- package/docs/interfaces/deleteWebhookResponse.html +2 -2
- package/docs/interfaces/device.html +2 -2
- package/docs/interfaces/deviceList.html +2 -2
- package/docs/interfaces/deviceStatus.html +2 -2
- package/docs/interfaces/deviceStatusRequest.html +2 -2
- package/docs/interfaces/deviceWebhook.html +2 -2
- package/docs/interfaces/deviceWebhookContext.html +2 -2
- package/docs/interfaces/devices.html +2 -2
- package/docs/interfaces/infraredRemoteList.html +2 -2
- package/docs/interfaces/irdevice.html +2 -2
- package/docs/interfaces/pushResponse.html +2 -2
- package/docs/interfaces/queryWebhookResponse.html +2 -2
- package/docs/interfaces/setupWebhookResponse.html +2 -2
- package/docs/interfaces/switchbot.html +2 -2
- package/docs/interfaces/updateWebhookResponse.html +2 -2
- package/docs/interfaces/webhookRequest.html +2 -2
- package/docs/types/MacAddress.html +1 -1
- package/docs/types/batteryCirculatorFan.html +1 -1
- package/docs/types/batteryCirculatorFanServiceData.html +1 -1
- package/docs/types/batteryCirculatorFanStatus.html +1 -1
- package/docs/types/batteryCirculatorFanWebhookContext.html +1 -1
- package/docs/types/blindTilt.html +1 -1
- package/docs/types/blindTiltServiceData.html +1 -1
- package/docs/types/blindTiltStatus.html +1 -1
- package/docs/types/blindTiltWebhookContext.html +1 -1
- package/docs/types/bot.html +1 -1
- package/docs/types/botServiceData.html +1 -1
- package/docs/types/botStatus.html +1 -1
- package/docs/types/botWebhookContext.html +1 -1
- package/docs/types/ceilingLight.html +1 -1
- package/docs/types/ceilingLightPro.html +1 -1
- package/docs/types/ceilingLightProServiceData.html +1 -1
- package/docs/types/ceilingLightProStatus.html +1 -1
- package/docs/types/ceilingLightProWebhookContext.html +1 -1
- package/docs/types/ceilingLightServiceData.html +1 -1
- package/docs/types/ceilingLightStatus.html +1 -1
- package/docs/types/ceilingLightWebhookContext.html +1 -1
- package/docs/types/circulatorFanStatus.html +1 -1
- package/docs/types/circulatorFanWebhookContext.html +1 -1
- package/docs/types/colorBulb.html +1 -1
- package/docs/types/colorBulbServiceData.html +1 -1
- package/docs/types/colorBulbStatus.html +1 -1
- package/docs/types/colorBulbWebhookContext.html +1 -1
- package/docs/types/contactSensor.html +1 -1
- package/docs/types/contactSensorServiceData.html +1 -1
- package/docs/types/contactSensorStatus.html +1 -1
- package/docs/types/contactSensorWebhookContext.html +1 -1
- package/docs/types/curtain.html +1 -1
- package/docs/types/curtain3.html +1 -1
- package/docs/types/curtain3ServiceData.html +1 -1
- package/docs/types/curtain3WebhookContext.html +1 -1
- package/docs/types/curtainServiceData.html +1 -1
- package/docs/types/curtainStatus.html +1 -1
- package/docs/types/curtainWebhookContext.html +1 -1
- package/docs/types/floorCleaningRobotS10.html +1 -1
- package/docs/types/floorCleaningRobotS10Status.html +1 -1
- package/docs/types/floorCleaningRobotS10WebhookContext.html +1 -1
- package/docs/types/hub2.html +1 -1
- package/docs/types/hub2ServiceData.html +1 -1
- package/docs/types/hub2Status.html +1 -1
- package/docs/types/hub2WebhookContext.html +1 -1
- package/docs/types/humidifier.html +1 -1
- package/docs/types/humidifier2ServiceData.html +1 -1
- package/docs/types/humidifier2Status.html +1 -1
- package/docs/types/humidifier2WebhookContext.html +1 -1
- package/docs/types/humidifierServiceData.html +1 -1
- package/docs/types/humidifierStatus.html +1 -1
- package/docs/types/humidifierWebhookContext.html +1 -1
- package/docs/types/indoorCam.html +1 -1
- package/docs/types/indoorCameraWebhookContext.html +1 -1
- package/docs/types/keypad.html +1 -1
- package/docs/types/keypadDetectorServiceData.html +1 -1
- package/docs/types/keypadTouch.html +1 -1
- package/docs/types/keypadTouchWebhookContext.html +1 -1
- package/docs/types/keypadWebhookContext.html +1 -1
- package/docs/types/lock.html +1 -1
- package/docs/types/lockPro.html +1 -1
- package/docs/types/lockProServiceData.html +1 -1
- package/docs/types/lockProStatus.html +1 -1
- package/docs/types/lockProWebhookContext.html +1 -1
- package/docs/types/lockServiceData.html +1 -1
- package/docs/types/lockStatus.html +1 -1
- package/docs/types/lockWebhookContext.html +1 -1
- package/docs/types/meter.html +1 -1
- package/docs/types/meterPlus.html +1 -1
- package/docs/types/meterPlusServiceData.html +1 -1
- package/docs/types/meterPlusStatus.html +1 -1
- package/docs/types/meterPlusWebhookContext.html +1 -1
- package/docs/types/meterPro.html +1 -1
- package/docs/types/meterProCO2ServiceData.html +1 -1
- package/docs/types/meterProCO2Status.html +1 -1
- package/docs/types/meterProCO2WebhookContext.html +1 -1
- package/docs/types/meterProServiceData.html +1 -1
- package/docs/types/meterProStatus.html +1 -1
- package/docs/types/meterProWebhookContext.html +1 -1
- package/docs/types/meterServiceData.html +1 -1
- package/docs/types/meterStatus.html +1 -1
- package/docs/types/meterWebhookContext.html +1 -1
- package/docs/types/motionSensor.html +1 -1
- package/docs/types/motionSensorServiceData.html +1 -1
- package/docs/types/motionSensorStatus.html +1 -1
- package/docs/types/motionSensorWebhookContext.html +1 -1
- package/docs/types/onadvertisement.html +1 -1
- package/docs/types/ondiscover.html +1 -1
- package/docs/types/outdoorMeter.html +1 -1
- package/docs/types/outdoorMeterServiceData.html +1 -1
- package/docs/types/outdoorMeterStatus.html +1 -1
- package/docs/types/outdoorMeterWebhookContext.html +1 -1
- package/docs/types/panTiltCamWebhookContext.html +1 -1
- package/docs/types/pantiltCam.html +1 -1
- package/docs/types/pantiltCam2k.html +1 -1
- package/docs/types/plug.html +1 -1
- package/docs/types/plugMini.html +1 -1
- package/docs/types/plugMiniJPServiceData.html +1 -1
- package/docs/types/plugMiniJPWebhookContext.html +1 -1
- package/docs/types/plugMiniStatus.html +1 -1
- package/docs/types/plugMiniUSServiceData.html +1 -1
- package/docs/types/plugMiniUSWebhookContext.html +1 -1
- package/docs/types/plugStatus.html +1 -1
- package/docs/types/plugWebhookContext.html +1 -1
- package/docs/types/relaySwitch1PMServiceData.html +1 -1
- package/docs/types/relaySwitch1ServiceData.html +1 -1
- package/docs/types/remote.html +1 -1
- package/docs/types/robotVacuumCleanerS1.html +1 -1
- package/docs/types/robotVacuumCleanerS1Plus.html +1 -1
- package/docs/types/robotVacuumCleanerS1PlusStatus.html +1 -1
- package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +1 -1
- package/docs/types/robotVacuumCleanerS1Status.html +1 -1
- package/docs/types/robotVacuumCleanerS1WebhookContext.html +1 -1
- package/docs/types/robotVacuumCleanerServiceData.html +1 -1
- package/docs/types/stripLight.html +1 -1
- package/docs/types/stripLightServiceData.html +1 -1
- package/docs/types/stripLightStatus.html +1 -1
- package/docs/types/stripLightWebhookContext.html +1 -1
- package/docs/types/waterLeakDetector.html +1 -1
- package/docs/types/waterLeakDetectorServiceData.html +1 -1
- package/docs/types/waterLeakDetectorStatus.html +1 -1
- package/docs/types/waterLeakDetectorWebhookContext.html +1 -1
- package/package.json +5 -8
package/dist/test/woleak.test.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { WoLeak } from '../device/woleak.js';
|
|
3
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
4
5
|
describe('woLeak', () => {
|
|
5
6
|
describe('parseServiceData', () => {
|
|
6
|
-
const emitLog =
|
|
7
|
+
const emitLog = vi.fn();
|
|
7
8
|
beforeEach(() => {
|
|
8
9
|
emitLog.mockClear();
|
|
9
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woleak.test.js","sourceRoot":"","sources":["../../src/test/woleak.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"woleak.test.js","sourceRoot":"","sources":["../../src/test/woleak.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import
|
|
3
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
3
|
import { WoPlugMiniUS } from '../device/woplugmini.js';
|
|
5
4
|
import { SwitchBotBLEModel } from '../types/types.js';
|
|
6
5
|
describe('woPlugMini', () => {
|
|
7
6
|
let emitLog;
|
|
8
7
|
beforeEach(() => {
|
|
9
|
-
emitLog =
|
|
8
|
+
emitLog = vi.fn();
|
|
10
9
|
});
|
|
11
10
|
describe('parseServiceData_US', () => {
|
|
12
11
|
it('should parse valid service data for US model', async () => {
|
|
@@ -29,7 +28,7 @@ describe('woPlugMini', () => {
|
|
|
29
28
|
const manufacturerData = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
30
29
|
const result = await WoPlugMiniUS.parseServiceData(manufacturerData, emitLog);
|
|
31
30
|
expect(result).toBeNull();
|
|
32
|
-
expect(emitLog.
|
|
31
|
+
expect(emitLog).toHaveBeenCalledWith('error', '[parseServiceDataForWoPlugMini] Buffer length 10 should be 14');
|
|
33
32
|
});
|
|
34
33
|
});
|
|
35
34
|
describe('operatePlug', () => {
|
|
@@ -38,24 +37,25 @@ describe('woPlugMini', () => {
|
|
|
38
37
|
beforeEach(() => {
|
|
39
38
|
const peripheral = {};
|
|
40
39
|
woPlugMini = new WoPlugMiniUS(peripheral, emitLog);
|
|
41
|
-
commandStub =
|
|
40
|
+
commandStub = vi.fn();
|
|
41
|
+
woPlugMini.command = commandStub;
|
|
42
42
|
});
|
|
43
43
|
it('should return true when the plug is turned on', async () => {
|
|
44
|
-
commandStub.
|
|
44
|
+
commandStub.mockResolvedValue([0x57, 0x80]);
|
|
45
45
|
const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]);
|
|
46
46
|
expect(result).toBe(true);
|
|
47
47
|
});
|
|
48
48
|
it('should return false when the plug is turned off', async () => {
|
|
49
|
-
commandStub.
|
|
49
|
+
commandStub.mockResolvedValue([0x57, 0x00]);
|
|
50
50
|
const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]);
|
|
51
51
|
expect(result).toBe(false);
|
|
52
52
|
});
|
|
53
53
|
it('should throw an error for invalid response length', async () => {
|
|
54
|
-
commandStub.
|
|
54
|
+
commandStub.mockResolvedValue([0x57]);
|
|
55
55
|
await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('Expecting a 2-byte response, got instead: 0x57');
|
|
56
56
|
});
|
|
57
57
|
it('should throw an error for invalid response code', async () => {
|
|
58
|
-
commandStub.
|
|
58
|
+
commandStub.mockResolvedValue([0x57, 0x01]);
|
|
59
59
|
await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('The device returned an error: 0x5701');
|
|
60
60
|
});
|
|
61
61
|
});
|
|
@@ -65,25 +65,26 @@ describe('woPlugMini', () => {
|
|
|
65
65
|
beforeEach(() => {
|
|
66
66
|
const peripheral = {};
|
|
67
67
|
woPlugMini = new WoPlugMiniUS(peripheral, emitLog);
|
|
68
|
-
setStateStub =
|
|
68
|
+
setStateStub = vi.fn();
|
|
69
|
+
woPlugMini.setState = setStateStub;
|
|
69
70
|
});
|
|
70
71
|
it('should turn on the plug', async () => {
|
|
71
|
-
setStateStub.
|
|
72
|
+
setStateStub.mockResolvedValue(true);
|
|
72
73
|
const result = await woPlugMini.turnOn();
|
|
73
74
|
expect(result).toBe(true);
|
|
74
|
-
expect(setStateStub.
|
|
75
|
+
expect(setStateStub).toHaveBeenCalledWith([0x01, 0x80]);
|
|
75
76
|
});
|
|
76
77
|
it('should turn off the plug', async () => {
|
|
77
|
-
setStateStub.
|
|
78
|
+
setStateStub.mockResolvedValue(false);
|
|
78
79
|
const result = await woPlugMini.turnOff();
|
|
79
80
|
expect(result).toBe(false);
|
|
80
|
-
expect(setStateStub.
|
|
81
|
+
expect(setStateStub).toHaveBeenCalledWith([0x01, 0x00]);
|
|
81
82
|
});
|
|
82
83
|
it('should toggle the plug state', async () => {
|
|
83
|
-
setStateStub.
|
|
84
|
+
setStateStub.mockResolvedValue(true);
|
|
84
85
|
const result = await woPlugMini.toggle();
|
|
85
86
|
expect(result).toBe(true);
|
|
86
|
-
expect(setStateStub.
|
|
87
|
+
expect(setStateStub).toHaveBeenCalledWith([0x02, 0x80]);
|
|
87
88
|
});
|
|
88
89
|
});
|
|
89
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woplugmini.test.js","sourceRoot":"","sources":["../../src/test/woplugmini.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"woplugmini.test.js","sourceRoot":"","sources":["../../src/test/woplugmini.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import
|
|
3
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
3
|
import { WoPlugMiniJP } from '../device/woplugmini_jp.js';
|
|
5
4
|
import { SwitchBotBLEModel } from '../types/types.js';
|
|
6
5
|
describe('woPlugMini', () => {
|
|
7
6
|
let emitLog;
|
|
8
7
|
beforeEach(() => {
|
|
9
|
-
emitLog =
|
|
8
|
+
emitLog = vi.fn();
|
|
10
9
|
});
|
|
11
10
|
describe('parseServiceData', () => {
|
|
12
11
|
it('should parse valid service data for JP model', async () => {
|
|
@@ -29,7 +28,7 @@ describe('woPlugMini', () => {
|
|
|
29
28
|
const manufacturerData = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
30
29
|
const result = await WoPlugMiniJP.parseServiceData(manufacturerData, emitLog);
|
|
31
30
|
expect(result).toBeNull();
|
|
32
|
-
expect(emitLog.
|
|
31
|
+
expect(emitLog).toHaveBeenCalledWith('error', '[parseServiceDataForWoPlugMini] Buffer length 10 should be 14');
|
|
33
32
|
});
|
|
34
33
|
});
|
|
35
34
|
describe('operatePlug', () => {
|
|
@@ -38,24 +37,25 @@ describe('woPlugMini', () => {
|
|
|
38
37
|
beforeEach(() => {
|
|
39
38
|
const peripheral = {};
|
|
40
39
|
woPlugMini = new WoPlugMiniJP(peripheral, emitLog);
|
|
41
|
-
commandStub =
|
|
40
|
+
commandStub = vi.fn();
|
|
41
|
+
woPlugMini.command = commandStub;
|
|
42
42
|
});
|
|
43
43
|
it('should return true when the plug is turned on', async () => {
|
|
44
|
-
commandStub.
|
|
44
|
+
commandStub.mockResolvedValue([0x57, 0x80]);
|
|
45
45
|
const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]);
|
|
46
46
|
expect(result).toBe(true);
|
|
47
47
|
});
|
|
48
48
|
it('should return false when the plug is turned off', async () => {
|
|
49
|
-
commandStub.
|
|
49
|
+
commandStub.mockResolvedValue([0x57, 0x00]);
|
|
50
50
|
const result = await woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01]);
|
|
51
51
|
expect(result).toBe(false);
|
|
52
52
|
});
|
|
53
53
|
it('should throw an error for invalid response length', async () => {
|
|
54
|
-
commandStub.
|
|
54
|
+
commandStub.mockResolvedValue([0x57]);
|
|
55
55
|
await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('Expecting a 2-byte response, got instead: 0x57');
|
|
56
56
|
});
|
|
57
57
|
it('should throw an error for invalid response code', async () => {
|
|
58
|
-
commandStub.
|
|
58
|
+
commandStub.mockResolvedValue([0x57, 0x01]);
|
|
59
59
|
await expect(woPlugMini.operatePlug([0x57, 0x0F, 0x51, 0x01])).rejects.toThrow('The device returned an error: 0x5701');
|
|
60
60
|
});
|
|
61
61
|
});
|
|
@@ -65,25 +65,26 @@ describe('woPlugMini', () => {
|
|
|
65
65
|
beforeEach(() => {
|
|
66
66
|
const peripheral = {};
|
|
67
67
|
woPlugMini = new WoPlugMiniJP(peripheral, emitLog);
|
|
68
|
-
setStateStub =
|
|
68
|
+
setStateStub = vi.fn();
|
|
69
|
+
woPlugMini.setState = setStateStub;
|
|
69
70
|
});
|
|
70
71
|
it('should turn on the plug', async () => {
|
|
71
|
-
setStateStub.
|
|
72
|
+
setStateStub.mockResolvedValue(true);
|
|
72
73
|
const result = await woPlugMini.turnOn();
|
|
73
74
|
expect(result).toBe(true);
|
|
74
|
-
expect(setStateStub.
|
|
75
|
+
expect(setStateStub).toHaveBeenCalledWith([0x01, 0x80]);
|
|
75
76
|
});
|
|
76
77
|
it('should turn off the plug', async () => {
|
|
77
|
-
setStateStub.
|
|
78
|
+
setStateStub.mockResolvedValue(false);
|
|
78
79
|
const result = await woPlugMini.turnOff();
|
|
79
80
|
expect(result).toBe(false);
|
|
80
|
-
expect(setStateStub.
|
|
81
|
+
expect(setStateStub).toHaveBeenCalledWith([0x01, 0x00]);
|
|
81
82
|
});
|
|
82
83
|
it('should toggle the plug state', async () => {
|
|
83
|
-
setStateStub.
|
|
84
|
+
setStateStub.mockResolvedValue(true);
|
|
84
85
|
const result = await woPlugMini.toggle();
|
|
85
86
|
expect(result).toBe(true);
|
|
86
|
-
expect(setStateStub.
|
|
87
|
+
expect(setStateStub).toHaveBeenCalledWith([0x02, 0x80]);
|
|
87
88
|
});
|
|
88
89
|
});
|
|
89
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woplugmini_jp.test.js","sourceRoot":"","sources":["../../src/test/woplugmini_jp.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"woplugmini_jp.test.js","sourceRoot":"","sources":["../../src/test/woplugmini_jp.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { WoSensorTH } from '../device/wosensorth.js';
|
|
3
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
4
5
|
describe('woSensorTH', () => {
|
|
5
|
-
const emitLog =
|
|
6
|
+
const emitLog = vi.fn();
|
|
6
7
|
describe('parseServiceData', () => {
|
|
7
8
|
it('should return null if buffer length is not 6', async () => {
|
|
8
9
|
const serviceData = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorth.test.js","sourceRoot":"","sources":["../../src/test/wosensorth.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"wosensorth.test.js","sourceRoot":"","sources":["../../src/test/wosensorth.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;IAEvB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACtE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACrE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACtE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAC9B,SAAS,EAAE,qBAAqB,CAAC,KAAK;gBACtC,iBAAiB,EAAE,6BAA6B,CAAC,KAAK;gBACtD,OAAO,EAAE,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,KAAK;gBACtB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;aACX,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { WoSensorTHPlus } from '../device/wosensorthplus.js';
|
|
3
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
4
5
|
describe('woSensorTH', () => {
|
|
5
|
-
const emitLog =
|
|
6
|
+
const emitLog = vi.fn();
|
|
6
7
|
describe('parseServiceData', () => {
|
|
7
8
|
it('should return null if buffer length is not 6', async () => {
|
|
8
9
|
const serviceData = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorthplus.test.js","sourceRoot":"","sources":["../../src/test/wosensorthplus.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"wosensorthplus.test.js","sourceRoot":"","sources":["../../src/test/wosensorthplus.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;IAEvB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,iBAAiB,CAAC,SAAS;gBAClC,SAAS,EAAE,qBAAqB,CAAC,SAAS;gBAC1C,iBAAiB,EAAE,6BAA6B,CAAC,SAAS;gBAC1D,OAAO,EAAE,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,KAAK;gBACtB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;aACX,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { WoSensorTHPro } from '../device/wosensorthpro.js';
|
|
3
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
4
5
|
describe('woSensorTH', () => {
|
|
5
|
-
const emitLog =
|
|
6
|
+
const emitLog = vi.fn();
|
|
6
7
|
describe('parseServiceData', () => {
|
|
7
8
|
it('should return null if buffer length is not 6', async () => {
|
|
8
9
|
const serviceData = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorthpro.test.js","sourceRoot":"","sources":["../../src/test/wosensorthpro.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"wosensorthpro.test.js","sourceRoot":"","sources":["../../src/test/wosensorthpro.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;IAEvB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACzE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACzE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,iBAAiB,CAAC,QAAQ;gBACjC,SAAS,EAAE,qBAAqB,CAAC,QAAQ;gBACzC,iBAAiB,EAAE,6BAA6B,CAAC,QAAQ;gBACzD,OAAO,EAAE,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,KAAK;gBACtB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;aACX,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { WoSensorTHProCO2 } from '../device/wosensorthproco2.js';
|
|
3
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
4
5
|
describe('woSensorTH', () => {
|
|
5
|
-
const emitLog =
|
|
6
|
+
const emitLog = vi.fn();
|
|
6
7
|
describe('parseServiceData', () => {
|
|
7
8
|
it('should return null if buffer length is not 7', async () => {
|
|
8
9
|
const serviceData = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorthproco2.test.js","sourceRoot":"","sources":["../../src/test/wosensorthproco2.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"wosensorthproco2.test.js","sourceRoot":"","sources":["../../src/test/wosensorthproco2.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;IAEvB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/D,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC1E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;YAC9F,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,4DAA4D,CAAC,CAAA;QAC7G,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACrE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC1E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;YAC9F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,iBAAiB,CAAC,WAAW;gBACpC,SAAS,EAAE,qBAAqB,CAAC,WAAW;gBAC5C,iBAAiB,EAAE,6BAA6B,CAAC,WAAW;gBAC5D,OAAO,EAAE,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,KAAK;gBACtB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,GAAG,EAAE,CAAC;aACP,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
3
|
import { WoSmartLock } from '../device/wosmartlock.js';
|
|
4
4
|
import { WoSmartLockCommands } from '../settings.js';
|
|
5
5
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
@@ -68,7 +68,7 @@ describe('woSmartLock', () => {
|
|
|
68
68
|
it('should parse service data correctly', async () => {
|
|
69
69
|
const serviceData = Buffer.from([0x00, 0x00, 0x7F]);
|
|
70
70
|
const manufacturerData = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00]);
|
|
71
|
-
const emitLog =
|
|
71
|
+
const emitLog = vi.fn();
|
|
72
72
|
const data = await WoSmartLock.parseServiceData(serviceData, manufacturerData, emitLog);
|
|
73
73
|
expect(data).toEqual({
|
|
74
74
|
model: 'Lock',
|
|
@@ -87,17 +87,17 @@ describe('woSmartLock', () => {
|
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
89
|
it('should unlock the smart lock', async () => {
|
|
90
|
-
|
|
90
|
+
vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01]));
|
|
91
91
|
const result = await lock.unlock();
|
|
92
92
|
expect(result).toBe(WoSmartLock.Result.SUCCESS);
|
|
93
93
|
});
|
|
94
94
|
it('should lock the smart lock', async () => {
|
|
95
|
-
|
|
95
|
+
vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01]));
|
|
96
96
|
const result = await lock.lock();
|
|
97
97
|
expect(result).toBe(WoSmartLock.Result.SUCCESS);
|
|
98
98
|
});
|
|
99
99
|
it('should get lock info', async () => {
|
|
100
|
-
|
|
100
|
+
vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x01, 0b10000000, 0b00100000]));
|
|
101
101
|
const info = await lock.info();
|
|
102
102
|
expect(info).toEqual({
|
|
103
103
|
calibration: true,
|
|
@@ -124,25 +124,25 @@ describe('woSmartLock', () => {
|
|
|
124
124
|
expect(decrypted.toString()).toBe('testdata');
|
|
125
125
|
});
|
|
126
126
|
it('should retrieve IV from the device', async () => {
|
|
127
|
-
|
|
127
|
+
vi.spyOn(lock, 'operateLock').mockResolvedValue(Buffer.from([0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04]));
|
|
128
128
|
const iv = await lock.getIv();
|
|
129
129
|
expect(iv.toString('hex')).toBe('01020304');
|
|
130
130
|
});
|
|
131
131
|
it('should send encrypted command to the device', async () => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
132
|
+
vi.spyOn(lock, 'getIv').mockResolvedValue(Buffer.from('01020304', 'hex'));
|
|
133
|
+
vi.spyOn(lock, 'encrypt').mockResolvedValue('encryptedCommand');
|
|
134
|
+
vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08]));
|
|
135
135
|
const response = await lock.encryptedCommand('testCommand');
|
|
136
136
|
expect(response.toString('hex')).toBe('expectedResponseHexString'); // Replace with actual expected response
|
|
137
137
|
});
|
|
138
138
|
describe('operateLock', () => {
|
|
139
139
|
it('should operate the lock with encryption', async () => {
|
|
140
|
-
|
|
140
|
+
vi.spyOn(lock, 'encryptedCommand').mockResolvedValue(Buffer.from([0x01]));
|
|
141
141
|
const response = await lock.operateLock(WoSmartLockCommands.LOCK);
|
|
142
142
|
expect(response).toBeDefined();
|
|
143
143
|
});
|
|
144
144
|
it('should operate the lock without encryption', async () => {
|
|
145
|
-
|
|
145
|
+
vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00]));
|
|
146
146
|
const response = await lock.operateLock(WoSmartLockCommands.LOCK, false);
|
|
147
147
|
expect(response).toBeDefined();
|
|
148
148
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlock.test.js","sourceRoot":"","sources":["../../src/test/wosmartlock.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"wosmartlock.test.js","sourceRoot":"","sources":["../../src/test/wosmartlock.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,cAAwC,CAAA;IAC5C,IAAI,SAA8B,CAAA;IAClC,IAAI,IAAiB,CAAA;IAErB,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,GAAG,EAA8B,CAAA;QAC/C,SAAS,GAAG,EAAyB,CAAA;QACrC,IAAI,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACpC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;YACzF,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,sDAAsD,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACpG,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;YACzF,MAAM,QAAQ,GAAoB;gBAChC,KAAK,EAAE,iBAAiB,CAAC,IAAI;gBAC7B,SAAS,EAAE,qBAAqB,CAAC,IAAI;gBACrC,iBAAiB,EAAE,6BAA6B,CAAC,IAAI;gBACrD,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,KAAK;gBAChB,0BAA0B,EAAE,KAAK;gBACjC,gBAAgB,EAAE,KAAK;gBACvB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,KAAK;gBACvB,WAAW,EAAE,KAAK;aACnB,CAAA;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,KAAK,GAAG,WAAW,CAAA;QACzB,MAAM,aAAa,GAAG,kCAAkC,CAAA;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACxG,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;QACvF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM;YACjB,iBAAiB,EAAE,MAAM;YACzB,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,QAAQ;YAChB,0BAA0B,EAAE,KAAK;YACjC,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;QAC5F,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,KAAK,GAAG,WAAW,CAAA;QACzB,MAAM,aAAa,GAAG,kCAAkC,CAAA;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA,CAAC,gDAAgD;IACvG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,KAAK,GAAG,WAAW,CAAA;QACzB,MAAM,aAAa,GAAG,kCAAkC,CAAA;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC,CAAA,CAAC,uCAAuC;QAC9H,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9G,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAC7B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;QACzE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;QAC/D,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC3D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA,CAAC,wCAAwC;IAC7G,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YAClF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
3
|
import { WoSmartLockPro } from '../device/wosmartlockpro.js';
|
|
4
4
|
import { WoSmartLockProCommands } from '../settings.js';
|
|
5
5
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
@@ -75,14 +75,14 @@ describe('woSmartLockPro', () => {
|
|
|
75
75
|
});
|
|
76
76
|
describe('unlock', () => {
|
|
77
77
|
it('should unlock the lock', async () => {
|
|
78
|
-
|
|
78
|
+
vi.spyOn(lock, 'operateLockPro').mockResolvedValue(Buffer.from([0x01]));
|
|
79
79
|
const result = await lock.unlock();
|
|
80
80
|
expect(result).toBe(WoSmartLockPro.Result.SUCCESS);
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
83
|
describe('lock', () => {
|
|
84
84
|
it('should lock the lock', async () => {
|
|
85
|
-
|
|
85
|
+
vi.spyOn(lock, 'operateLockPro').mockResolvedValue(Buffer.from([0x01]));
|
|
86
86
|
const result = await lock.lock();
|
|
87
87
|
expect(result).toBe(WoSmartLockPro.Result.SUCCESS);
|
|
88
88
|
});
|
|
@@ -90,7 +90,7 @@ describe('woSmartLockPro', () => {
|
|
|
90
90
|
describe('info', () => {
|
|
91
91
|
it('should return lock info', async () => {
|
|
92
92
|
const mockResponse = Buffer.from([0b10000000, 0b00100000]);
|
|
93
|
-
|
|
93
|
+
vi.spyOn(lock, 'operateLockPro').mockResolvedValue(mockResponse);
|
|
94
94
|
const info = await lock.info();
|
|
95
95
|
expect(info).toEqual({
|
|
96
96
|
calibration: true,
|
|
@@ -120,28 +120,28 @@ describe('woSmartLockPro', () => {
|
|
|
120
120
|
describe('getIv', () => {
|
|
121
121
|
it('should retrieve the IV from the device', async () => {
|
|
122
122
|
const mockResponse = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x01, 0x02]);
|
|
123
|
-
|
|
123
|
+
vi.spyOn(lock, 'operateLockPro').mockResolvedValue(mockResponse);
|
|
124
124
|
const iv = await lock.getIv();
|
|
125
125
|
expect(iv).toEqual(Buffer.from([0x01, 0x02]));
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
128
|
describe('encryptedCommand', () => {
|
|
129
129
|
it('should send an encrypted command to the device', async () => {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
vi.spyOn(lock, 'getIv').mockResolvedValue(Buffer.from([0x01, 0x02]));
|
|
131
|
+
vi.spyOn(lock, 'encrypt').mockResolvedValue('encrypted');
|
|
132
|
+
vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00, 0x01, 0x02]));
|
|
133
133
|
const response = await lock.encryptedCommand('key');
|
|
134
134
|
expect(response).toBeDefined();
|
|
135
135
|
});
|
|
136
136
|
});
|
|
137
137
|
describe('operateLockPro', () => {
|
|
138
138
|
it('should operate the lock with encryption', async () => {
|
|
139
|
-
|
|
139
|
+
vi.spyOn(lock, 'encryptedCommand').mockResolvedValue(Buffer.from([0x01]));
|
|
140
140
|
const response = await lock.operateLockPro(WoSmartLockProCommands.LOCK);
|
|
141
141
|
expect(response).toBeDefined();
|
|
142
142
|
});
|
|
143
143
|
it('should operate the lock without encryption', async () => {
|
|
144
|
-
|
|
144
|
+
vi.spyOn(lock, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00, 0x00]));
|
|
145
145
|
const response = await lock.operateLockPro(WoSmartLockProCommands.LOCK, false);
|
|
146
146
|
expect(response).toBeDefined();
|
|
147
147
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlockpro.test.js","sourceRoot":"","sources":["../../src/test/wosmartlockpro.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"wosmartlockpro.test.js","sourceRoot":"","sources":["../../src/test/wosmartlockpro.test.ts"],"names":[],"mappings":"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"}
|