@matterbridge/jest-utils 3.9.0 → 3.9.1-dev-20260614-18d1a2e

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.
@@ -5,26 +5,22 @@ import { AggregatorEndpoint } from '@matter/node/endpoints';
5
5
  import { DeviceTypeId } from '@matter/types/datatype';
6
6
  import { type PlatformMatterbridge } from '@matterbridge/types';
7
7
  export declare let environment: Environment;
8
- export declare let server: ServerNode<ServerNode.RootEndpoint>;
8
+ export declare let server: ServerNode;
9
9
  export declare let aggregator: Endpoint<AggregatorEndpoint>;
10
10
  export declare function createTestEnvironment(): Promise<Environment>;
11
11
  export declare function destroyTestEnvironment(): Promise<void>;
12
12
  export declare function getMatterbridge(): PlatformMatterbridge;
13
- export declare const addBridgedEndpoint: import("jest-mock").Mock<(pluginName: string, device: Endpoint) => Promise<boolean>>;
14
- export declare const removeBridgedEndpoint: import("jest-mock").Mock<(pluginName: string, device: Endpoint) => Promise<boolean>>;
15
- export declare const removeAllBridgedEndpoints: import("jest-mock").Mock<(pluginName: string, _delay?: number) => Promise<boolean>>;
16
- export declare const addVirtualEndpoint: import("jest-mock").Mock<(pluginName: string, name: string, type: "light" | "outlet" | "switch" | "mounted_switch", callback: () => Promise<void>) => Promise<boolean>>;
17
- export declare const addBridgedEndpointMatterbridgeSpy: import("jest-mock").Mock<(pluginName: string, device: Endpoint) => Promise<boolean>>;
18
- export declare const removeBridgedEndpointMatterbridgeSpy: import("jest-mock").Mock<(pluginName: string, device: Endpoint) => Promise<boolean>>;
19
- export declare const removeAllBridgedEndpointsMatterbridgeSpy: import("jest-mock").Mock<(pluginName: string, _delay?: number) => Promise<boolean>>;
20
- export declare const addVirtualEndpointMatterbridgeSpy: import("jest-mock").Mock<(pluginName: string, name: string, type: "light" | "outlet" | "switch" | "mounted_switch", callback: () => Promise<void>) => Promise<boolean>>;
13
+ export declare const addBridgedEndpoint: (pluginName: string, device: Endpoint) => Promise<boolean>;
14
+ export declare const removeBridgedEndpoint: (pluginName: string, device: Endpoint) => Promise<boolean>;
15
+ export declare const removeAllBridgedEndpoints: (pluginName: string, _delay?: number) => Promise<boolean>;
16
+ export declare const addVirtualEndpoint: (pluginName: string, name: string, type: "light" | "outlet" | "switch" | "mounted_switch", callback: () => Promise<void>) => Promise<boolean>;
21
17
  export declare function addMatterbridge(platform: object): void;
22
18
  export declare function flushAllEndpointNumberPersistence(targetServer: ServerNode, rounds?: number, ticks?: number, microTurns?: number, pause?: number): Promise<void>;
23
19
  export declare function assertAllEndpointNumbersPersisted(targetServer: ServerNode): Promise<number>;
24
20
  export declare function closeServerNodeStores(targetServer?: ServerNode): Promise<void>;
25
- export declare function createServerNode(port: number, deviceType?: DeviceTypeId, ticks?: number, microTurns?: number, pause?: number): Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>;
26
- export declare function startServerNode(ticks?: number, microTurns?: number, pause?: number): Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>;
21
+ export declare function createServerNode(port: number, deviceType?: DeviceTypeId, ticks?: number, microTurns?: number, pause?: number): Promise<[ServerNode, Endpoint<AggregatorEndpoint>]>;
22
+ export declare function startServerNode(ticks?: number, microTurns?: number, pause?: number): Promise<[ServerNode, Endpoint<AggregatorEndpoint>]>;
27
23
  export declare function stopServerNode(ticks?: number, microTurns?: number, pause?: number): Promise<void>;
28
24
  export declare function flushServerNode(ticks?: number, microTurns?: number, pause?: number): Promise<void>;
29
- export declare function addDevice(owner: ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>, device: Endpoint, rounds?: number, pause?: number): Promise<boolean>;
30
- export declare function deleteDevice(owner: ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>, device: Endpoint, rounds?: number, pause?: number): Promise<boolean>;
25
+ export declare function addDevice(owner: ServerNode | Endpoint<AggregatorEndpoint>, device: Endpoint, rounds?: number, pause?: number): Promise<boolean>;
26
+ export declare function deleteDevice(owner: ServerNode | Endpoint<AggregatorEndpoint>, device: Endpoint, rounds?: number, pause?: number): Promise<boolean>;
@@ -1,7 +1,6 @@
1
1
  import '@matter/nodejs';
2
2
  import path from 'node:path';
3
3
  import { inspect } from 'node:util';
4
- import { jest } from '@jest/globals';
5
4
  import { Environment, Lifecycle, LogFormat as MatterLogFormat, LogLevel as MatterLogLevel } from '@matter/general';
6
5
  import { Endpoint, ServerNode, ServerNodeStore } from '@matter/node';
7
6
  import { BridgedDeviceBasicInformationServer } from '@matter/node/behaviors/bridged-device-basic-information';
@@ -62,10 +61,10 @@ export function getMatterbridge() {
62
61
  matterbridgePluginDirectory: path.join(HOMEDIR, 'Matterbridge'),
63
62
  matterbridgeCertDirectory: path.join(HOMEDIR, '.mattercert'),
64
63
  globalModulesDirectory: path.join(HOMEDIR, 'node_modules'),
65
- matterbridgeVersion: '3.9.0',
66
- matterbridgeLatestVersion: '3.9.0',
67
- matterbridgeDevVersion: '3.9.0',
68
- frontendVersion: '3.9.0',
64
+ matterbridgeVersion: '3.9.1',
65
+ matterbridgeLatestVersion: '3.9.1',
66
+ matterbridgeDevVersion: '3.9.1',
67
+ frontendVersion: '3.9.1',
69
68
  bridgeMode: '',
70
69
  restartMode: '',
71
70
  virtualMode: 'mounted_switch',
@@ -76,7 +75,7 @@ export function getMatterbridge() {
76
75
  };
77
76
  return matterbridge;
78
77
  }
79
- export const addBridgedEndpoint = jest.fn(async (pluginName, device) => {
78
+ export const addBridgedEndpoint = async (pluginName, device) => {
80
79
  try {
81
80
  await aggregator.add(device);
82
81
  return Promise.resolve(true);
@@ -84,8 +83,8 @@ export const addBridgedEndpoint = jest.fn(async (pluginName, device) => {
84
83
  catch (error) {
85
84
  return Promise.reject(error);
86
85
  }
87
- });
88
- export const removeBridgedEndpoint = jest.fn(async (pluginName, device) => {
86
+ };
87
+ export const removeBridgedEndpoint = async (pluginName, device) => {
89
88
  try {
90
89
  await device.delete();
91
90
  return Promise.resolve(true);
@@ -93,8 +92,8 @@ export const removeBridgedEndpoint = jest.fn(async (pluginName, device) => {
93
92
  catch (error) {
94
93
  return Promise.reject(error);
95
94
  }
96
- });
97
- export const removeAllBridgedEndpoints = jest.fn(async (pluginName, _delay = 0) => {
95
+ };
96
+ export const removeAllBridgedEndpoints = async (pluginName, _delay = 0) => {
98
97
  try {
99
98
  for (const device of aggregator.parts) {
100
99
  await device.delete();
@@ -104,8 +103,8 @@ export const removeAllBridgedEndpoints = jest.fn(async (pluginName, _delay = 0)
104
103
  catch (error) {
105
104
  return Promise.reject(error);
106
105
  }
107
- });
108
- export const addVirtualEndpoint = jest.fn(async (pluginName, name, type, callback) => {
106
+ };
107
+ export const addVirtualEndpoint = async (pluginName, name, type, callback) => {
109
108
  try {
110
109
  const device = new Endpoint(MountedOnOffControlDevice.with(BridgedDeviceBasicInformationServer), {
111
110
  id: name.replaceAll(' ', '') + ':' + type,
@@ -136,11 +135,7 @@ export const addVirtualEndpoint = jest.fn(async (pluginName, name, type, callbac
136
135
  catch (error) {
137
136
  return Promise.reject(error);
138
137
  }
139
- });
140
- export const addBridgedEndpointMatterbridgeSpy = addBridgedEndpoint;
141
- export const removeBridgedEndpointMatterbridgeSpy = removeBridgedEndpoint;
142
- export const removeAllBridgedEndpointsMatterbridgeSpy = removeAllBridgedEndpoints;
143
- export const addVirtualEndpointMatterbridgeSpy = addVirtualEndpoint;
138
+ };
144
139
  export function addMatterbridge(platform) {
145
140
  expect(platform).toBeDefined();
146
141
  platform.setMatterNode(addBridgedEndpoint, removeBridgedEndpoint, removeAllBridgedEndpoints, addVirtualEndpoint);
@@ -1,4 +1,3 @@
1
- import type { jest } from '@jest/globals';
2
1
  import { AnsiLogger } from 'node-ansi-logger';
3
2
  export declare const originalProcessArgv: readonly string[];
4
3
  export declare const originalProcessEnv: Readonly<Record<string, string | undefined>>;
@@ -17,5 +16,5 @@ export declare let consoleErrorSpy: jest.SpiedFunction<typeof console.error>;
17
16
  export declare let NAME: string;
18
17
  export declare let HOMEDIR: string;
19
18
  export declare let log: AnsiLogger;
20
- export declare function setupTest(name: string, debug?: boolean): Promise<void>;
19
+ export declare function setupTest(name: string, debug?: boolean, argv?: string[], env?: Record<string, string>): Promise<void>;
21
20
  export declare function setDebug(debug: boolean): Promise<void>;
@@ -18,12 +18,16 @@ export let consoleErrorSpy;
18
18
  export let NAME;
19
19
  export let HOMEDIR;
20
20
  export let log;
21
- export async function setupTest(name, debug = false) {
21
+ export async function setupTest(name, debug = false, argv = [], env = {}) {
22
22
  expect(name).toBeDefined();
23
23
  expect(typeof name).toBe('string');
24
24
  expect(name.length).toBeGreaterThanOrEqual(4);
25
25
  NAME = name;
26
26
  HOMEDIR = path.join('.cache', 'jest', name);
27
+ process.argv = ['jest', name, ...argv];
28
+ for (const [key, value] of Object.entries(env)) {
29
+ process.env[key] = value;
30
+ }
27
31
  log = new AnsiLogger({ logName: name, logTimestampFormat: 4, logLevel: "debug" });
28
32
  rmSync(HOMEDIR, { recursive: true, force: true });
29
33
  mkdirSync(HOMEDIR, { recursive: true });
@@ -1,2 +1,2 @@
1
- import { AnsiLogger } from 'node-ansi-logger';
1
+ import { type AnsiLogger } from 'node-ansi-logger';
2
2
  export declare function logKeepAlives(log?: AnsiLogger): number;
@@ -1,5 +1,5 @@
1
1
  import { ColorControl } from '@matter/types/clusters/color-control';
2
- import { LevelControl } from '@matter/types/clusters/level-control';
2
+ import { type LevelControl } from '@matter/types/clusters/level-control';
3
3
  export declare function getMoveToLevelRequest(level: number, transitionTime: number, executeIfOff: boolean): LevelControl.MoveToLevelRequest;
4
4
  export declare function getMoveToColorTemperatureRequest(colorTemperatureMireds: number, transitionTime: number, executeIfOff: boolean): ColorControl.MoveToColorTemperatureRequest;
5
5
  export declare function getMoveToHueRequest(hue: number, transitionTime: number, executeIfOff: boolean): ColorControl.MoveToHueRequest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterbridge/jest-utils",
3
- "version": "3.9.0",
3
+ "version": "3.9.1-dev-20260614-18d1a2e",
4
4
  "description": "Matterbridge jest utility library",
5
5
  "author": "https://github.com/Luligu",
6
6
  "homepage": "https://matterbridge.io/",
@@ -65,7 +65,7 @@
65
65
  "CHANGELOG.md"
66
66
  ],
67
67
  "dependencies": {
68
- "@matterbridge/types": "3.9.0",
68
+ "@matterbridge/types": "3.9.1-dev-20260614-18d1a2e",
69
69
  "node-ansi-logger": "3.3.0-dev-20260607-585945a"
70
70
  }
71
71
  }