matterbridge 3.3.8-dev-20251115-ca5ff21 → 3.3.8
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/dist/broadcastServer.d.ts +115 -0
- package/dist/broadcastServer.d.ts.map +1 -0
- package/dist/broadcastServer.js +93 -1
- package/dist/broadcastServer.js.map +1 -0
- package/dist/broadcastServerTypes.d.ts +806 -0
- package/dist/broadcastServerTypes.d.ts.map +1 -0
- package/dist/broadcastServerTypes.js +24 -0
- package/dist/broadcastServerTypes.js.map +1 -0
- package/dist/cli.d.ts +30 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +97 -1
- package/dist/cli.js.map +1 -0
- package/dist/cliEmitter.d.ts +50 -0
- package/dist/cliEmitter.d.ts.map +1 -0
- package/dist/cliEmitter.js +37 -0
- package/dist/cliEmitter.js.map +1 -0
- package/dist/cliHistory.d.ts +48 -0
- package/dist/cliHistory.d.ts.map +1 -0
- package/dist/cliHistory.js +38 -0
- package/dist/cliHistory.js.map +1 -0
- package/dist/clusters/export.d.ts +2 -0
- package/dist/clusters/export.d.ts.map +1 -0
- package/dist/clusters/export.js +2 -0
- package/dist/clusters/export.js.map +1 -0
- package/dist/defaultConfigSchema.d.ts +28 -0
- package/dist/defaultConfigSchema.d.ts.map +1 -0
- package/dist/defaultConfigSchema.js +24 -0
- package/dist/defaultConfigSchema.js.map +1 -0
- package/dist/deviceManager.d.ts +128 -0
- package/dist/deviceManager.d.ts.map +1 -0
- package/dist/deviceManager.js +105 -1
- package/dist/deviceManager.js.map +1 -0
- package/dist/devices/airConditioner.d.ts +98 -0
- package/dist/devices/airConditioner.d.ts.map +1 -0
- package/dist/devices/airConditioner.js +57 -0
- package/dist/devices/airConditioner.js.map +1 -0
- package/dist/devices/batteryStorage.d.ts +48 -0
- package/dist/devices/batteryStorage.d.ts.map +1 -0
- package/dist/devices/batteryStorage.js +48 -1
- package/dist/devices/batteryStorage.js.map +1 -0
- package/dist/devices/cooktop.d.ts +60 -0
- package/dist/devices/cooktop.d.ts.map +1 -0
- package/dist/devices/cooktop.js +55 -0
- package/dist/devices/cooktop.js.map +1 -0
- package/dist/devices/dishwasher.d.ts +71 -0
- package/dist/devices/dishwasher.d.ts.map +1 -0
- package/dist/devices/dishwasher.js +57 -0
- package/dist/devices/dishwasher.js.map +1 -0
- package/dist/devices/evse.d.ts +76 -0
- package/dist/devices/evse.d.ts.map +1 -0
- package/dist/devices/evse.js +74 -10
- package/dist/devices/evse.js.map +1 -0
- package/dist/devices/export.d.ts +17 -0
- package/dist/devices/export.d.ts.map +1 -0
- package/dist/devices/export.js +5 -0
- package/dist/devices/export.js.map +1 -0
- package/dist/devices/extractorHood.d.ts +46 -0
- package/dist/devices/extractorHood.d.ts.map +1 -0
- package/dist/devices/extractorHood.js +43 -0
- package/dist/devices/extractorHood.js.map +1 -0
- package/dist/devices/heatPump.d.ts +47 -0
- package/dist/devices/heatPump.d.ts.map +1 -0
- package/dist/devices/heatPump.js +50 -2
- package/dist/devices/heatPump.js.map +1 -0
- package/dist/devices/laundryDryer.d.ts +67 -0
- package/dist/devices/laundryDryer.d.ts.map +1 -0
- package/dist/devices/laundryDryer.js +62 -3
- package/dist/devices/laundryDryer.js.map +1 -0
- package/dist/devices/laundryWasher.d.ts +81 -0
- package/dist/devices/laundryWasher.d.ts.map +1 -0
- package/dist/devices/laundryWasher.js +70 -4
- package/dist/devices/laundryWasher.js.map +1 -0
- package/dist/devices/microwaveOven.d.ts +168 -0
- package/dist/devices/microwaveOven.d.ts.map +1 -0
- package/dist/devices/microwaveOven.js +88 -5
- package/dist/devices/microwaveOven.js.map +1 -0
- package/dist/devices/oven.d.ts +105 -0
- package/dist/devices/oven.d.ts.map +1 -0
- package/dist/devices/oven.js +92 -11
- package/dist/devices/oven.js.map +1 -0
- package/dist/devices/refrigerator.d.ts +118 -0
- package/dist/devices/refrigerator.d.ts.map +1 -0
- package/dist/devices/refrigerator.js +102 -0
- package/dist/devices/refrigerator.js.map +1 -0
- package/dist/devices/roboticVacuumCleaner.d.ts +112 -0
- package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
- package/dist/devices/roboticVacuumCleaner.js +111 -20
- package/dist/devices/roboticVacuumCleaner.js.map +1 -0
- package/dist/devices/solarPower.d.ts +40 -0
- package/dist/devices/solarPower.d.ts.map +1 -0
- package/dist/devices/solarPower.js +38 -0
- package/dist/devices/solarPower.js.map +1 -0
- package/dist/devices/speaker.d.ts +87 -0
- package/dist/devices/speaker.d.ts.map +1 -0
- package/dist/devices/speaker.js +84 -0
- package/dist/devices/speaker.js.map +1 -0
- package/dist/devices/temperatureControl.d.ts +166 -0
- package/dist/devices/temperatureControl.d.ts.map +1 -0
- package/dist/devices/temperatureControl.js +24 -3
- package/dist/devices/temperatureControl.js.map +1 -0
- package/dist/devices/waterHeater.d.ts +111 -0
- package/dist/devices/waterHeater.d.ts.map +1 -0
- package/dist/devices/waterHeater.js +82 -2
- package/dist/devices/waterHeater.js.map +1 -0
- package/dist/dgram/coap.d.ts +205 -0
- package/dist/dgram/coap.d.ts.map +1 -0
- package/dist/dgram/coap.js +126 -13
- package/dist/dgram/coap.js.map +1 -0
- package/dist/dgram/dgram.d.ts +141 -0
- package/dist/dgram/dgram.d.ts.map +1 -0
- package/dist/dgram/dgram.js +114 -2
- package/dist/dgram/dgram.js.map +1 -0
- package/dist/dgram/mb_coap.d.ts +24 -0
- package/dist/dgram/mb_coap.d.ts.map +1 -0
- package/dist/dgram/mb_coap.js +41 -3
- package/dist/dgram/mb_coap.js.map +1 -0
- package/dist/dgram/mb_mdns.d.ts +24 -0
- package/dist/dgram/mb_mdns.d.ts.map +1 -0
- package/dist/dgram/mb_mdns.js +80 -15
- package/dist/dgram/mb_mdns.js.map +1 -0
- package/dist/dgram/mdns.d.ts +290 -0
- package/dist/dgram/mdns.d.ts.map +1 -0
- package/dist/dgram/mdns.js +299 -137
- package/dist/dgram/mdns.js.map +1 -0
- package/dist/dgram/multicast.d.ts +67 -0
- package/dist/dgram/multicast.d.ts.map +1 -0
- package/dist/dgram/multicast.js +62 -1
- package/dist/dgram/multicast.js.map +1 -0
- package/dist/dgram/unicast.d.ts +56 -0
- package/dist/dgram/unicast.d.ts.map +1 -0
- package/dist/dgram/unicast.js +54 -0
- package/dist/dgram/unicast.js.map +1 -0
- package/dist/frontend.d.ts +238 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +454 -35
- package/dist/frontend.js.map +1 -0
- package/dist/frontendTypes.d.ts +529 -0
- package/dist/frontendTypes.d.ts.map +1 -0
- package/dist/frontendTypes.js +45 -0
- package/dist/frontendTypes.js.map +1 -0
- package/dist/helpers.d.ts +48 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +53 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/jestutils/export.d.ts +2 -0
- package/dist/jestutils/export.d.ts.map +1 -0
- package/dist/jestutils/export.js +1 -0
- package/dist/jestutils/export.js.map +1 -0
- package/dist/jestutils/jestHelpers.d.ts +250 -0
- package/dist/jestutils/jestHelpers.d.ts.map +1 -0
- package/dist/jestutils/jestHelpers.js +275 -4
- package/dist/jestutils/jestHelpers.js.map +1 -0
- package/dist/logger/export.d.ts +2 -0
- package/dist/logger/export.d.ts.map +1 -0
- package/dist/logger/export.js +1 -0
- package/dist/logger/export.js.map +1 -0
- package/dist/matter/behaviors.d.ts +2 -0
- package/dist/matter/behaviors.d.ts.map +1 -0
- package/dist/matter/behaviors.js +2 -0
- package/dist/matter/behaviors.js.map +1 -0
- package/dist/matter/clusters.d.ts +2 -0
- package/dist/matter/clusters.d.ts.map +1 -0
- package/dist/matter/clusters.js +2 -0
- package/dist/matter/clusters.js.map +1 -0
- package/dist/matter/devices.d.ts +2 -0
- package/dist/matter/devices.d.ts.map +1 -0
- package/dist/matter/devices.js +2 -0
- package/dist/matter/devices.js.map +1 -0
- package/dist/matter/endpoints.d.ts +2 -0
- package/dist/matter/endpoints.d.ts.map +1 -0
- package/dist/matter/endpoints.js +2 -0
- package/dist/matter/endpoints.js.map +1 -0
- package/dist/matter/export.d.ts +5 -0
- package/dist/matter/export.d.ts.map +1 -0
- package/dist/matter/export.js +3 -0
- package/dist/matter/export.js.map +1 -0
- package/dist/matter/types.d.ts +3 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +3 -0
- package/dist/matter/types.js.map +1 -0
- package/dist/matterbridge.d.ts +469 -0
- package/dist/matterbridge.d.ts.map +1 -0
- package/dist/matterbridge.js +788 -46
- package/dist/matterbridge.js.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts +41 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.js +38 -0
- package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
- package/dist/matterbridgeBehaviors.d.ts +2404 -0
- package/dist/matterbridgeBehaviors.d.ts.map +1 -0
- package/dist/matterbridgeBehaviors.js +77 -14
- package/dist/matterbridgeBehaviors.js.map +1 -0
- package/dist/matterbridgeDeviceTypes.d.ts +698 -0
- package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
- package/dist/matterbridgeDeviceTypes.js +635 -14
- package/dist/matterbridgeDeviceTypes.js.map +1 -0
- package/dist/matterbridgeDynamicPlatform.d.ts +41 -0
- package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
- package/dist/matterbridgeDynamicPlatform.js +38 -0
- package/dist/matterbridgeDynamicPlatform.js.map +1 -0
- package/dist/matterbridgeEndpoint.d.ts +1490 -0
- package/dist/matterbridgeEndpoint.d.ts.map +1 -0
- package/dist/matterbridgeEndpoint.js +1432 -53
- package/dist/matterbridgeEndpoint.js.map +1 -0
- package/dist/matterbridgeEndpointHelpers.d.ts +787 -0
- package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
- package/dist/matterbridgeEndpointHelpers.js +488 -25
- package/dist/matterbridgeEndpointHelpers.js.map +1 -0
- package/dist/matterbridgeEndpointTypes.d.ts +197 -0
- package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
- package/dist/matterbridgeEndpointTypes.js +25 -0
- package/dist/matterbridgeEndpointTypes.js.map +1 -0
- package/dist/matterbridgePlatform.d.ts +415 -0
- package/dist/matterbridgePlatform.d.ts.map +1 -0
- package/dist/matterbridgePlatform.js +354 -1
- package/dist/matterbridgePlatform.js.map +1 -0
- package/dist/matterbridgeTypes.d.ts +239 -0
- package/dist/matterbridgeTypes.d.ts.map +1 -0
- package/dist/matterbridgeTypes.js +26 -0
- package/dist/matterbridgeTypes.js.map +1 -0
- package/dist/pluginManager.d.ts +371 -0
- package/dist/pluginManager.d.ts.map +1 -0
- package/dist/pluginManager.js +339 -4
- package/dist/pluginManager.js.map +1 -0
- package/dist/shelly.d.ts +174 -0
- package/dist/shelly.d.ts.map +1 -0
- package/dist/shelly.js +168 -7
- package/dist/shelly.js.map +1 -0
- package/dist/storage/export.d.ts +2 -0
- package/dist/storage/export.d.ts.map +1 -0
- package/dist/storage/export.js +1 -0
- package/dist/storage/export.js.map +1 -0
- package/dist/update.d.ts +75 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +69 -0
- package/dist/update.js.map +1 -0
- package/dist/utils/colorUtils.d.ts +101 -0
- package/dist/utils/colorUtils.d.ts.map +1 -0
- package/dist/utils/colorUtils.js +97 -2
- package/dist/utils/colorUtils.js.map +1 -0
- package/dist/utils/commandLine.d.ts +66 -0
- package/dist/utils/commandLine.d.ts.map +1 -0
- package/dist/utils/commandLine.js +60 -0
- package/dist/utils/commandLine.js.map +1 -0
- package/dist/utils/copyDirectory.d.ts +33 -0
- package/dist/utils/copyDirectory.d.ts.map +1 -0
- package/dist/utils/copyDirectory.js +38 -1
- package/dist/utils/copyDirectory.js.map +1 -0
- package/dist/utils/createDirectory.d.ts +34 -0
- package/dist/utils/createDirectory.d.ts.map +1 -0
- package/dist/utils/createDirectory.js +33 -0
- package/dist/utils/createDirectory.js.map +1 -0
- package/dist/utils/createZip.d.ts +39 -0
- package/dist/utils/createZip.d.ts.map +1 -0
- package/dist/utils/createZip.js +47 -2
- package/dist/utils/createZip.js.map +1 -0
- package/dist/utils/deepCopy.d.ts +32 -0
- package/dist/utils/deepCopy.d.ts.map +1 -0
- package/dist/utils/deepCopy.js +39 -0
- package/dist/utils/deepCopy.js.map +1 -0
- package/dist/utils/deepEqual.d.ts +54 -0
- package/dist/utils/deepEqual.d.ts.map +1 -0
- package/dist/utils/deepEqual.js +72 -1
- package/dist/utils/deepEqual.js.map +1 -0
- package/dist/utils/error.d.ts +44 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +41 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/export.d.ts +13 -0
- package/dist/utils/export.d.ts.map +1 -0
- package/dist/utils/export.js +1 -0
- package/dist/utils/export.js.map +1 -0
- package/dist/utils/format.d.ts +53 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +49 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/hex.d.ts +89 -0
- package/dist/utils/hex.d.ts.map +1 -0
- package/dist/utils/hex.js +124 -0
- package/dist/utils/hex.js.map +1 -0
- package/dist/utils/inspector.d.ts +87 -0
- package/dist/utils/inspector.d.ts.map +1 -0
- package/dist/utils/inspector.js +69 -1
- package/dist/utils/inspector.js.map +1 -0
- package/dist/utils/isvalid.d.ts +103 -0
- package/dist/utils/isvalid.d.ts.map +1 -0
- package/dist/utils/isvalid.js +101 -0
- package/dist/utils/isvalid.js.map +1 -0
- package/dist/utils/network.d.ts +101 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +96 -5
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/spawn.d.ts +35 -0
- package/dist/utils/spawn.d.ts.map +1 -0
- package/dist/utils/spawn.js +71 -0
- package/dist/utils/spawn.js.map +1 -0
- package/dist/utils/tracker.d.ts +108 -0
- package/dist/utils/tracker.d.ts.map +1 -0
- package/dist/utils/tracker.js +64 -1
- package/dist/utils/tracker.js.map +1 -0
- package/dist/utils/wait.d.ts +54 -0
- package/dist/utils/wait.d.ts.map +1 -0
- package/dist/utils/wait.js +60 -8
- package/dist/utils/wait.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -1
|
@@ -1,6 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description This file contains the Jest helpers.
|
|
3
|
+
* @file src/helpers.test.ts
|
|
4
|
+
* @author Luca Liguori
|
|
5
|
+
* @created 2025-09-03
|
|
6
|
+
* @version 1.0.12
|
|
7
|
+
* @license Apache-2.0
|
|
8
|
+
*
|
|
9
|
+
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
1
23
|
import { rmSync } from 'node:fs';
|
|
2
24
|
import { inspect } from 'node:util';
|
|
3
25
|
import path from 'node:path';
|
|
26
|
+
// Imports from Matterbridge
|
|
4
27
|
import { AnsiLogger, er, rs } from 'node-ansi-logger';
|
|
5
28
|
import { LogLevel as MatterLogLevel, LogFormat as MatterLogFormat, Environment, Lifecycle } from '@matter/general';
|
|
6
29
|
import { Endpoint, ServerNode, ServerNodeStore } from '@matter/node';
|
|
@@ -10,6 +33,12 @@ import { MdnsService } from '@matter/main/protocol';
|
|
|
10
33
|
import { Matterbridge } from '../matterbridge.js';
|
|
11
34
|
import { MATTER_STORAGE_NAME } from '../matterbridgeTypes.js';
|
|
12
35
|
import { bridge } from '../matterbridgeDeviceTypes.js';
|
|
36
|
+
/* Imports from a plugin
|
|
37
|
+
import { AnsiLogger, LogLevel } from 'matterbridge/logger';
|
|
38
|
+
import { DeviceTypeId, Endpoint, Environment, MdnsService, ServerNode, ServerNodeStore, VendorId, LogFormat as MatterLogFormat, LogLevel as MatterLogLevel, Lifecycle } from 'matterbridge/matter';
|
|
39
|
+
import { RootEndpoint, AggregatorEndpoint } from 'matterbridge/matter/endpoints';
|
|
40
|
+
import { MATTER_STORAGE_NAME, Matterbridge, MatterbridgePlatform } from 'matterbridge';
|
|
41
|
+
*/
|
|
13
42
|
export let loggerLogSpy;
|
|
14
43
|
export let loggerDebugSpy;
|
|
15
44
|
export let loggerInfoSpy;
|
|
@@ -30,10 +59,28 @@ export let environment;
|
|
|
30
59
|
export let server;
|
|
31
60
|
export let aggregator;
|
|
32
61
|
export let log;
|
|
62
|
+
/**
|
|
63
|
+
* Setup the Jest environment:
|
|
64
|
+
* - it will remove any existing home directory
|
|
65
|
+
* - setup the spies for logging
|
|
66
|
+
*
|
|
67
|
+
* @param {string} name The name of the test suite.
|
|
68
|
+
* @param {boolean} debug If true, the logging is not mocked.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* import { consoleDebugSpy, consoleErrorSpy, consoleInfoSpy, consoleLogSpy, consoleWarnSpy, loggerLogSpy, setDebug, setupTest } from './jestutils/jestHelpers.js';
|
|
73
|
+
*
|
|
74
|
+
* // Setup the test environment
|
|
75
|
+
* setupTest(NAME, false);
|
|
76
|
+
*
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
33
79
|
export async function setupTest(name, debug = false) {
|
|
34
80
|
expect(name).toBeDefined();
|
|
35
81
|
expect(typeof name).toBe('string');
|
|
36
82
|
expect(name.length).toBeGreaterThanOrEqual(4);
|
|
83
|
+
// Cleanup any existing home directory
|
|
37
84
|
rmSync(path.join('jest', name), { recursive: true, force: true });
|
|
38
85
|
const { jest } = await import('@jest/globals');
|
|
39
86
|
loggerDebugSpy = jest.spyOn(AnsiLogger.prototype, 'debug');
|
|
@@ -62,6 +109,22 @@ export async function setupTest(name, debug = false) {
|
|
|
62
109
|
removeBridgedEndpointSpy = jest.spyOn(Matterbridge.prototype, 'removeBridgedEndpoint');
|
|
63
110
|
removeAllBridgedEndpointsSpy = jest.spyOn(Matterbridge.prototype, 'removeAllBridgedEndpoints');
|
|
64
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Set or unset the debug mode.
|
|
114
|
+
*
|
|
115
|
+
* @param {boolean} debug If true, the logging is not mocked.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Set the debug mode in test environment
|
|
120
|
+
* setDebug(true);
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* ```typescript
|
|
124
|
+
* // Reset the debug mode in test environment
|
|
125
|
+
* setDebug(false);
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
65
128
|
export async function setDebug(debug) {
|
|
66
129
|
const { jest } = await import('@jest/globals');
|
|
67
130
|
if (debug) {
|
|
@@ -87,7 +150,21 @@ export async function setDebug(debug) {
|
|
|
87
150
|
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
|
|
88
151
|
}
|
|
89
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Create a Matterbridge instance for testing without initializing it.
|
|
155
|
+
*
|
|
156
|
+
* @param {string} name - Name for the environment (jest/name).
|
|
157
|
+
* @returns {Promise<Matterbridge>} The Matterbridge instance.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```typescript
|
|
161
|
+
* // Create Matterbridge environment
|
|
162
|
+
* await createMatterbridgeEnvironment(NAME);
|
|
163
|
+
* await startMatterbridgeEnvironment(MATTER_PORT);
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
90
166
|
export async function createMatterbridgeEnvironment(name) {
|
|
167
|
+
// Create a MatterbridgeEdge instance
|
|
91
168
|
matterbridge = await Matterbridge.loadInstance(false);
|
|
92
169
|
expect(matterbridge).toBeDefined();
|
|
93
170
|
expect(matterbridge).toBeInstanceOf(Matterbridge);
|
|
@@ -98,23 +175,43 @@ export async function createMatterbridgeEnvironment(name) {
|
|
|
98
175
|
matterbridge.matterbridgeDirectory = path.join('jest', name, '.matterbridge');
|
|
99
176
|
matterbridge.matterbridgePluginDirectory = path.join('jest', name, 'Matterbridge');
|
|
100
177
|
matterbridge.matterbridgeCertDirectory = path.join('jest', name, '.mattercert');
|
|
101
|
-
matterbridge.log.logLevel = "debug"
|
|
102
|
-
log = new AnsiLogger({ logName: 'Plugin platform', logTimestampFormat: 4
|
|
178
|
+
matterbridge.log.logLevel = "debug" /* LogLevel.DEBUG */;
|
|
179
|
+
log = new AnsiLogger({ logName: 'Plugin platform', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: "debug" /* LogLevel.DEBUG */ });
|
|
180
|
+
// Setup matter environment
|
|
181
|
+
// @ts-expect-error - access to private member for testing
|
|
103
182
|
matterbridge.environment = createTestEnvironment(name);
|
|
183
|
+
// @ts-expect-error - access to private member for testing
|
|
104
184
|
expect(matterbridge.environment).toBeDefined();
|
|
185
|
+
// @ts-expect-error - access to private member for testing
|
|
105
186
|
expect(matterbridge.environment).toBeInstanceOf(Environment);
|
|
106
187
|
return matterbridge;
|
|
107
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Start the matterbridge environment
|
|
191
|
+
*
|
|
192
|
+
* @param {number} port The matter server port.
|
|
193
|
+
* @returns {Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>} The started server and aggregator.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* // Create Matterbridge environment
|
|
198
|
+
* await createMatterbridgeEnvironment(NAME);
|
|
199
|
+
* await startMatterbridgeEnvironment(MATTER_PORT);
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
108
202
|
export async function startMatterbridgeEnvironment(port = 5540) {
|
|
203
|
+
// @ts-expect-error - access to private member for testing
|
|
109
204
|
await matterbridge.startMatterStorage();
|
|
110
205
|
expect(matterbridge.matterStorageService).toBeDefined();
|
|
111
206
|
expect(matterbridge.matterStorageManager).toBeDefined();
|
|
112
207
|
expect(matterbridge.matterbridgeContext).toBeDefined();
|
|
208
|
+
// @ts-expect-error - access to private member for testing
|
|
113
209
|
server = await matterbridge.createServerNode(matterbridge.matterbridgeContext, port);
|
|
114
210
|
expect(server).toBeDefined();
|
|
115
211
|
expect(server).toBeDefined();
|
|
116
212
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
117
213
|
matterbridge.serverNode = server;
|
|
214
|
+
// @ts-expect-error - access to private member for testing
|
|
118
215
|
aggregator = await matterbridge.createAggregatorNode(matterbridge.matterbridgeContext);
|
|
119
216
|
expect(aggregator).toBeDefined();
|
|
120
217
|
matterbridge.aggregatorNode = aggregator;
|
|
@@ -122,6 +219,7 @@ export async function startMatterbridgeEnvironment(port = 5540) {
|
|
|
122
219
|
expect(server.parts.has(aggregator.id)).toBeTruthy();
|
|
123
220
|
expect(server.parts.has(aggregator)).toBeTruthy();
|
|
124
221
|
expect(aggregator.lifecycle.isReady).toBeTruthy();
|
|
222
|
+
// Wait for the server to be online
|
|
125
223
|
expect(server.lifecycle.isOnline).toBeFalsy();
|
|
126
224
|
await new Promise((resolve) => {
|
|
127
225
|
server.lifecycle.online.on(async () => {
|
|
@@ -129,6 +227,7 @@ export async function startMatterbridgeEnvironment(port = 5540) {
|
|
|
129
227
|
});
|
|
130
228
|
server.start();
|
|
131
229
|
});
|
|
230
|
+
// Check if the server is online
|
|
132
231
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
133
232
|
expect(server.lifecycle.isOnline).toBeTruthy();
|
|
134
233
|
expect(server.lifecycle.isCommissioned).toBeFalsy();
|
|
@@ -140,9 +239,23 @@ export async function startMatterbridgeEnvironment(port = 5540) {
|
|
|
140
239
|
expect(aggregator.lifecycle.isPartsReady).toBeTruthy();
|
|
141
240
|
expect(aggregator.lifecycle.hasId).toBeTruthy();
|
|
142
241
|
expect(aggregator.lifecycle.hasNumber).toBeTruthy();
|
|
242
|
+
// Ensure the queue is empty and pause
|
|
143
243
|
await flushAsync();
|
|
144
244
|
return [server, aggregator];
|
|
145
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Add a matterbridge platform for testing.
|
|
248
|
+
*
|
|
249
|
+
* @param {MatterbridgePlatform} platform The platform to add.
|
|
250
|
+
* @param {string} [name] Optional name of the platform.
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```typescript
|
|
254
|
+
* platform = new Platform(matterbridge, log, config);
|
|
255
|
+
* // Add the platform to the Matterbridge environment
|
|
256
|
+
* addMatterbridgePlatform(platform);
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
146
259
|
export function addMatterbridgePlatform(platform, name) {
|
|
147
260
|
if (name)
|
|
148
261
|
platform.config.name = name;
|
|
@@ -154,6 +267,7 @@ export function addMatterbridgePlatform(platform, name) {
|
|
|
154
267
|
expect(platform.version).toBeDefined();
|
|
155
268
|
expect(platform.config.debug).toBeDefined();
|
|
156
269
|
expect(platform.config.unregisterOnShutdown).toBeDefined();
|
|
270
|
+
// @ts-expect-error accessing private member for testing
|
|
157
271
|
matterbridge.plugins._plugins.set(platform.config.name, {
|
|
158
272
|
name: platform.config.name,
|
|
159
273
|
path: './',
|
|
@@ -165,54 +279,130 @@ export function addMatterbridgePlatform(platform, name) {
|
|
|
165
279
|
});
|
|
166
280
|
platform['name'] = platform.config.name;
|
|
167
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Stop the matterbridge environment
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* ```typescript
|
|
287
|
+
* // Destroy Matterbridge environment
|
|
288
|
+
* await stopMatterbridgeEnvironment();
|
|
289
|
+
* await destroyMatterbridgeEnvironment();
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
168
292
|
export async function stopMatterbridgeEnvironment() {
|
|
169
293
|
expect(matterbridge).toBeDefined();
|
|
170
294
|
expect(server).toBeDefined();
|
|
171
295
|
expect(aggregator).toBeDefined();
|
|
296
|
+
// Flush any pending endpoint number persistence
|
|
172
297
|
await flushAllEndpointNumberPersistence(server);
|
|
298
|
+
// Ensure all endpoint numbers are persisted
|
|
173
299
|
await assertAllEndpointNumbersPersisted(server);
|
|
300
|
+
// Close the server node
|
|
174
301
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
175
302
|
expect(server.lifecycle.isOnline).toBeTruthy();
|
|
176
303
|
await server.close();
|
|
177
304
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
178
305
|
expect(server.lifecycle.isOnline).toBeFalsy();
|
|
306
|
+
// stop the mDNS service
|
|
307
|
+
// await server.env.get(MdnsService)[Symbol.asyncDispose]();
|
|
308
|
+
// Stop the matter storage
|
|
309
|
+
// @ts-expect-error - access to private member for testing
|
|
179
310
|
await matterbridge.stopMatterStorage();
|
|
180
311
|
expect(matterbridge.matterStorageService).not.toBeDefined();
|
|
181
312
|
expect(matterbridge.matterStorageManager).not.toBeDefined();
|
|
182
313
|
expect(matterbridge.matterbridgeContext).not.toBeDefined();
|
|
314
|
+
// Ensure the queue is empty and pause
|
|
183
315
|
await flushAsync();
|
|
184
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Destroy the matterbridge environment
|
|
319
|
+
*
|
|
320
|
+
* @param {number} cleanupPause The timeout for the destroy operation (default 250ms).
|
|
321
|
+
* @param {number} destroyPause The pause duration after cleanup before destroying the instance (default 250ms).
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```typescript
|
|
325
|
+
* // Destroy Matterbridge environment
|
|
326
|
+
* await stopMatterbridgeEnvironment();
|
|
327
|
+
* await destroyMatterbridgeEnvironment();
|
|
328
|
+
* ```
|
|
329
|
+
*/
|
|
185
330
|
export async function destroyMatterbridgeEnvironment(cleanupPause = 10, destroyPause = 250) {
|
|
331
|
+
// Destroy a matterbridge instance
|
|
186
332
|
await destroyInstance(matterbridge, cleanupPause, destroyPause);
|
|
333
|
+
// Close the mDNS service
|
|
187
334
|
await closeMdnsInstance(matterbridge);
|
|
335
|
+
// Reset the singleton instance
|
|
336
|
+
// @ts-expect-error - accessing private member for testing
|
|
188
337
|
Matterbridge.instance = undefined;
|
|
189
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* Destroy a matterbridge instance
|
|
341
|
+
*
|
|
342
|
+
* @param {Matterbridge} matterbridge The matterbridge instance to destroy.
|
|
343
|
+
* @param {number} cleanupPause The pause duration to wait for the cleanup to complete in milliseconds (default 10ms).
|
|
344
|
+
* @param {number} destroyPause The pause duration to wait after cleanup before destroying the instance in milliseconds (default 250ms).
|
|
345
|
+
*/
|
|
190
346
|
export async function destroyInstance(matterbridge, cleanupPause = 10, destroyPause = 250) {
|
|
347
|
+
// Cleanup the Matterbridge instance
|
|
348
|
+
// @ts-expect-error - accessing private member for testing
|
|
191
349
|
await matterbridge.cleanup('destroying instance...', false, cleanupPause);
|
|
350
|
+
// Pause before destroying the instance
|
|
192
351
|
if (destroyPause > 0)
|
|
193
352
|
await flushAsync(undefined, undefined, destroyPause);
|
|
194
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Close the mDNS instance in the matterbridge environment.
|
|
356
|
+
*
|
|
357
|
+
* @param {Matterbridge} matterbridge The matterbridge instance.
|
|
358
|
+
* @returns {Promise<void>} A promise that resolves when the mDNS instance is closed.
|
|
359
|
+
*/
|
|
195
360
|
export async function closeMdnsInstance(matterbridge) {
|
|
361
|
+
// @ts-expect-error - accessing private member for testing
|
|
362
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
363
|
const mdns = matterbridge.environment.get(MdnsService);
|
|
197
364
|
if (mdns && mdns[Symbol.asyncDispose] && typeof mdns[Symbol.asyncDispose] === 'function')
|
|
198
365
|
await mdns[Symbol.asyncDispose]();
|
|
199
366
|
if (mdns && mdns.close && typeof mdns.close === 'function')
|
|
200
367
|
await mdns.close();
|
|
201
368
|
}
|
|
369
|
+
/**
|
|
370
|
+
* Create a matter Environment for testing:
|
|
371
|
+
* - it will remove any existing home directory
|
|
372
|
+
* - setup the matter environment with name, debug logging and ANSI format
|
|
373
|
+
*
|
|
374
|
+
* @param {string} name - Name for the environment (jest/name).
|
|
375
|
+
* @returns {Environment} - The default matter environment.
|
|
376
|
+
*/
|
|
202
377
|
export function createTestEnvironment(name) {
|
|
203
378
|
expect(name).toBeDefined();
|
|
204
379
|
expect(typeof name).toBe('string');
|
|
205
|
-
expect(name.length).toBeGreaterThanOrEqual(4);
|
|
380
|
+
expect(name.length).toBeGreaterThanOrEqual(4); // avoid accidental deletion of short paths like "/" or "C:\"
|
|
381
|
+
// Cleanup any existing home directory
|
|
206
382
|
rmSync(path.join('jest', name), { recursive: true, force: true });
|
|
383
|
+
// Setup the matter environment
|
|
207
384
|
environment = Environment.default;
|
|
208
385
|
environment.vars.set('log.level', MatterLogLevel.DEBUG);
|
|
209
386
|
environment.vars.set('log.format', MatterLogFormat.ANSI);
|
|
210
387
|
environment.vars.set('path.root', path.join('jest', name, '.matterbridge', MATTER_STORAGE_NAME));
|
|
211
388
|
environment.vars.set('runtime.signals', false);
|
|
212
389
|
environment.vars.set('runtime.exitcode', false);
|
|
390
|
+
// Setup the mDNS service in the environment
|
|
213
391
|
new MdnsService(environment);
|
|
214
392
|
return environment;
|
|
215
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Advance the Node.js event loop deterministically to allow chained asynchronous work (Promises scheduled in
|
|
396
|
+
* microtasks and follow‑up macrotasks) to complete inside tests without adding arbitrary long timeouts.
|
|
397
|
+
*
|
|
398
|
+
* NOTE: This does not guarantee OS level network IO completion—only JavaScript task queue progression inside the
|
|
399
|
+
* current process.
|
|
400
|
+
*
|
|
401
|
+
* @param {number} ticks Number of macrotask (setImmediate) turns to yield (default 3).
|
|
402
|
+
* @param {number} microTurns Number of microtask drains (Promise.resolve chains) after macrotask yielding (default 10).
|
|
403
|
+
* @param {number} pause Final timer delay in ms; set 0 to disable (default 250ms).
|
|
404
|
+
* @returns {Promise<void>} Resolves after the requested event loop advancement has completed.
|
|
405
|
+
*/
|
|
216
406
|
export async function flushAsync(ticks = 3, microTurns = 10, pause = 250) {
|
|
217
407
|
for (let i = 0; i < ticks; i++)
|
|
218
408
|
await new Promise((resolve) => setImmediate(resolve));
|
|
@@ -221,6 +411,19 @@ export async function flushAsync(ticks = 3, microTurns = 10, pause = 250) {
|
|
|
221
411
|
if (pause)
|
|
222
412
|
await new Promise((resolve) => setTimeout(resolve, pause));
|
|
223
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Flush (await) the lazy endpoint number persistence mechanism used by matter.js.
|
|
416
|
+
*
|
|
417
|
+
* Background:
|
|
418
|
+
* assignNumber() batches persistence (store.saveNumber + updating __nextNumber__) via an internal promise (#numbersPersisted).
|
|
419
|
+
* Calling endpointStores.close() waits for the current batch only. If new endpoints were added in the same macrotask
|
|
420
|
+
* cycle additional micro/macro turns might be needed to ensure the batch started. We defensively yield macrotasks
|
|
421
|
+
* (setImmediate) and then await close() multiple rounds.
|
|
422
|
+
*
|
|
423
|
+
* @param {ServerNode} targetServer The server whose endpoint numbering persistence should be flushed.
|
|
424
|
+
* @param {number} rounds Number of macrotask + close cycles to run (2 is usually sufficient; 1 often works).
|
|
425
|
+
* @returns {Promise<void>} Resolves when pending number persistence batches have completed.
|
|
426
|
+
*/
|
|
224
427
|
export async function flushAllEndpointNumberPersistence(targetServer, rounds = 2) {
|
|
225
428
|
const nodeStore = targetServer.env.get(ServerNodeStore);
|
|
226
429
|
for (let i = 0; i < rounds; i++) {
|
|
@@ -228,6 +431,12 @@ export async function flushAllEndpointNumberPersistence(targetServer, rounds = 2
|
|
|
228
431
|
await nodeStore.endpointStores.close();
|
|
229
432
|
}
|
|
230
433
|
}
|
|
434
|
+
/**
|
|
435
|
+
* Collect all endpoints in the server endpoint tree (root -> descendants).
|
|
436
|
+
*
|
|
437
|
+
* @param {Endpoint} root Root endpoint (typically the ServerNode root endpoint cast as Endpoint).
|
|
438
|
+
* @returns {Endpoint[]} Flat array including the root and every descendant once.
|
|
439
|
+
*/
|
|
231
440
|
function collectAllEndpoints(root) {
|
|
232
441
|
const list = [];
|
|
233
442
|
const walk = (ep) => {
|
|
@@ -241,14 +450,26 @@ function collectAllEndpoints(root) {
|
|
|
241
450
|
walk(root);
|
|
242
451
|
return list;
|
|
243
452
|
}
|
|
453
|
+
/**
|
|
454
|
+
* Assert that every endpoint attached to the server has an assigned and (batch-)persisted endpoint number.
|
|
455
|
+
*
|
|
456
|
+
* This waits for any outstanding number persistence batch (endpointStores.close()), then traverses the endpoint
|
|
457
|
+
* graph and asserts:
|
|
458
|
+
* - Root endpoint: number is 0 (allowing undefined to coerce to 0 via nullish coalescing check).
|
|
459
|
+
* - All other endpoints: number > 0.
|
|
460
|
+
*
|
|
461
|
+
* @param {ServerNode} targetServer The server whose endpoint numbers are verified.
|
|
462
|
+
* @returns {Promise<void>} Resolves when assertions complete.
|
|
463
|
+
*/
|
|
244
464
|
export async function assertAllEndpointNumbersPersisted(targetServer) {
|
|
245
465
|
const nodeStore = targetServer.env.get(ServerNodeStore);
|
|
466
|
+
// Ensure any pending persistence finished (flush any in-flight batch promise)
|
|
246
467
|
await nodeStore.endpointStores.close();
|
|
247
468
|
const all = collectAllEndpoints(targetServer);
|
|
248
469
|
for (const ep of all) {
|
|
249
470
|
const store = nodeStore.storeForEndpoint(ep);
|
|
250
471
|
if (ep.maybeNumber === 0) {
|
|
251
|
-
expect(store.number ?? 0).toBe(0);
|
|
472
|
+
expect(store.number ?? 0).toBe(0); // root
|
|
252
473
|
}
|
|
253
474
|
else {
|
|
254
475
|
expect(store.number).toBeGreaterThan(0);
|
|
@@ -256,18 +477,29 @@ export async function assertAllEndpointNumbersPersisted(targetServer) {
|
|
|
256
477
|
}
|
|
257
478
|
return all.length;
|
|
258
479
|
}
|
|
480
|
+
/**
|
|
481
|
+
* Start a matter server node for testing.
|
|
482
|
+
*
|
|
483
|
+
* @param {string} name Name of the server (used for logging and product description).
|
|
484
|
+
* @param {number} port TCP port to listen on.
|
|
485
|
+
* @param {DeviceTypeId} deviceType Device type identifier for the server node.
|
|
486
|
+
* @returns {Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>} Resolves to an array containing the created ServerNode and its AggregatorNode.
|
|
487
|
+
*/
|
|
259
488
|
export async function startServerNode(name, port, deviceType = bridge.code) {
|
|
260
489
|
const { randomBytes } = await import('node:crypto');
|
|
261
490
|
const random = randomBytes(8).toString('hex');
|
|
491
|
+
// Create the server node
|
|
262
492
|
server = await ServerNode.create({
|
|
263
493
|
id: name + 'ServerNode',
|
|
264
494
|
environment,
|
|
495
|
+
// Provide Node announcement settings
|
|
265
496
|
productDescription: {
|
|
266
497
|
name: name + 'ServerNode',
|
|
267
498
|
deviceType: DeviceTypeId(deviceType),
|
|
268
499
|
vendorId: VendorId(0xfff1),
|
|
269
500
|
productId: 0x8000,
|
|
270
501
|
},
|
|
502
|
+
// Provide defaults for the BasicInformation cluster on the Root endpoint
|
|
271
503
|
basicInformation: {
|
|
272
504
|
vendorId: VendorId(0xfff1),
|
|
273
505
|
vendorName: 'Matterbridge',
|
|
@@ -280,32 +512,39 @@ export async function startServerNode(name, port, deviceType = bridge.code) {
|
|
|
280
512
|
serialNumber: 'SN' + random,
|
|
281
513
|
uniqueId: 'UI' + random,
|
|
282
514
|
},
|
|
515
|
+
// Provide Network relevant configuration like the port
|
|
283
516
|
network: {
|
|
284
517
|
listeningAddressIpv4: undefined,
|
|
285
518
|
listeningAddressIpv6: undefined,
|
|
286
519
|
port,
|
|
287
520
|
},
|
|
521
|
+
// Provide the certificate for the device
|
|
288
522
|
operationalCredentials: {
|
|
289
523
|
certification: undefined,
|
|
290
524
|
},
|
|
291
525
|
});
|
|
292
526
|
expect(server).toBeDefined();
|
|
293
527
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
528
|
+
// Create the aggregator node
|
|
294
529
|
aggregator = new Endpoint(AggregatorEndpoint, {
|
|
295
530
|
id: name + 'AggregatorNode',
|
|
296
531
|
});
|
|
297
532
|
expect(aggregator).toBeDefined();
|
|
533
|
+
// Add the aggregator to the server
|
|
298
534
|
await server.add(aggregator);
|
|
299
535
|
expect(server.parts.has(aggregator.id)).toBeTruthy();
|
|
300
536
|
expect(server.parts.has(aggregator)).toBeTruthy();
|
|
301
537
|
expect(aggregator.lifecycle.isReady).toBeTruthy();
|
|
538
|
+
// Run the server
|
|
302
539
|
expect(server.lifecycle.isOnline).toBeFalsy();
|
|
540
|
+
// Wait for the server to be online
|
|
303
541
|
await new Promise((resolve) => {
|
|
304
542
|
server.lifecycle.online.on(async () => {
|
|
305
543
|
resolve();
|
|
306
544
|
});
|
|
307
545
|
server.start();
|
|
308
546
|
});
|
|
547
|
+
// Check if the server is online
|
|
309
548
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
310
549
|
expect(server.lifecycle.isOnline).toBeTruthy();
|
|
311
550
|
expect(server.lifecycle.isCommissioned).toBeFalsy();
|
|
@@ -317,31 +556,53 @@ export async function startServerNode(name, port, deviceType = bridge.code) {
|
|
|
317
556
|
expect(aggregator.lifecycle.isPartsReady).toBeTruthy();
|
|
318
557
|
expect(aggregator.lifecycle.hasId).toBeTruthy();
|
|
319
558
|
expect(aggregator.lifecycle.hasNumber).toBeTruthy();
|
|
559
|
+
// Ensure the queue is empty and pause 250ms
|
|
320
560
|
await flushAsync();
|
|
321
561
|
return [server, aggregator];
|
|
322
562
|
}
|
|
563
|
+
/**
|
|
564
|
+
* Stop a matter server node.
|
|
565
|
+
*
|
|
566
|
+
* @param {ServerNode<ServerNode.RootEndpoint>} server The server to stop.
|
|
567
|
+
* @returns {Promise<void>} Resolves when the server has stopped.
|
|
568
|
+
*/
|
|
323
569
|
export async function stopServerNode(server) {
|
|
570
|
+
// Flush any pending endpoint number persistence
|
|
324
571
|
await flushAllEndpointNumberPersistence(server);
|
|
572
|
+
// Ensure all endpoint numbers are persisted
|
|
325
573
|
await assertAllEndpointNumbersPersisted(server);
|
|
574
|
+
// Stop the server
|
|
326
575
|
expect(server).toBeDefined();
|
|
327
576
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
328
577
|
expect(server.lifecycle.isOnline).toBeTruthy();
|
|
329
578
|
await server.close();
|
|
330
579
|
expect(server.lifecycle.isReady).toBeTruthy();
|
|
331
580
|
expect(server.lifecycle.isOnline).toBeFalsy();
|
|
581
|
+
// stop the mDNS service
|
|
582
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
332
583
|
const mdns = environment.get(MdnsService);
|
|
333
584
|
if (mdns && typeof mdns[Symbol.asyncDispose] === 'function')
|
|
334
585
|
await mdns[Symbol.asyncDispose]();
|
|
335
586
|
if (mdns && typeof mdns.close === 'function')
|
|
336
587
|
await mdns.close();
|
|
588
|
+
// Ensure the queue is empty and pause 100ms
|
|
337
589
|
await flushAsync();
|
|
338
590
|
}
|
|
591
|
+
/**
|
|
592
|
+
* Add a device (endpoint) to a matter server node or an aggregator.
|
|
593
|
+
*
|
|
594
|
+
* @param {ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>} owner The server or aggregator to add the device to.
|
|
595
|
+
* @param {Endpoint} device The device to add.
|
|
596
|
+
* @param {number} pause The pause time in milliseconds after addition (default 10ms).
|
|
597
|
+
* @returns {Promise<void>} Resolves when the device has been added and is ready.
|
|
598
|
+
*/
|
|
339
599
|
export async function addDevice(owner, device, pause = 10) {
|
|
340
600
|
expect(owner).toBeDefined();
|
|
341
601
|
expect(device).toBeDefined();
|
|
342
602
|
expect(owner.lifecycle.isReady).toBeTruthy();
|
|
343
603
|
expect(owner.construction.status).toBe(Lifecycle.Status.Active);
|
|
344
604
|
expect(owner.lifecycle.isPartsReady).toBeTruthy();
|
|
605
|
+
// istanbul ignore next
|
|
345
606
|
try {
|
|
346
607
|
await owner.add(device);
|
|
347
608
|
}
|
|
@@ -361,12 +622,21 @@ export async function addDevice(owner, device, pause = 10) {
|
|
|
361
622
|
await flushAsync(undefined, undefined, pause);
|
|
362
623
|
return true;
|
|
363
624
|
}
|
|
625
|
+
/**
|
|
626
|
+
* Delete a device (endpoint) from a matter server node or an aggregator.
|
|
627
|
+
*
|
|
628
|
+
* @param {ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>} owner The server or aggregator to remove the device from.
|
|
629
|
+
* @param {Endpoint} device The device to remove.
|
|
630
|
+
* @param {number} pause The pause time in milliseconds after deletion (default 10ms).
|
|
631
|
+
* @returns {Promise<void>} Resolves when the device has been removed and is no longer ready.
|
|
632
|
+
*/
|
|
364
633
|
export async function deleteDevice(owner, device, pause = 10) {
|
|
365
634
|
expect(owner).toBeDefined();
|
|
366
635
|
expect(device).toBeDefined();
|
|
367
636
|
expect(owner.lifecycle.isReady).toBeTruthy();
|
|
368
637
|
expect(owner.construction.status).toBe(Lifecycle.Status.Active);
|
|
369
638
|
expect(owner.lifecycle.isPartsReady).toBeTruthy();
|
|
639
|
+
// istanbul ignore next
|
|
370
640
|
try {
|
|
371
641
|
await device.delete();
|
|
372
642
|
}
|
|
@@ -386,3 +656,4 @@ export async function deleteDevice(owner, device, pause = 10) {
|
|
|
386
656
|
await flushAsync(undefined, undefined, pause);
|
|
387
657
|
return true;
|
|
388
658
|
}
|
|
659
|
+
//# sourceMappingURL=jestHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jestHelpers.js","sourceRoot":"","sources":["../../src/jestutils/jestHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/logger/export.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
package/dist/logger/export.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/logger/export.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behaviors.d.ts","sourceRoot":"","sources":["../../src/matter/behaviors.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC"}
|
package/dist/matter/behaviors.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behaviors.js","sourceRoot":"","sources":["../../src/matter/behaviors.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusters.d.ts","sourceRoot":"","sources":["../../src/matter/clusters.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC"}
|
package/dist/matter/clusters.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusters.js","sourceRoot":"","sources":["../../src/matter/clusters.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/matter/devices.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC"}
|
package/dist/matter/devices.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/matter/devices.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,cAAc,sBAAsB,CAAC"}
|