Skip to content

Commit 7d63a9a

Browse files
KoenkkNerivec
andauthored
fix(ignore): update zigbee-herdsman-converters to 22.0.1 (#26418)
Co-authored-by: Nerivec <[email protected]>
1 parent 93af062 commit 7d63a9a

File tree

7 files changed

+35
-27
lines changed

7 files changed

+35
-27
lines changed

lib/extension/externalConverters.ts

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type * as zhc from 'zigbee-herdsman-converters';
22

3-
import {addDefinition, removeExternalDefinitions} from 'zigbee-herdsman-converters';
3+
import {addExternalDefinition, removeExternalDefinitions} from 'zigbee-herdsman-converters';
44

55
import logger from '../util/logger';
66
import ExternalJSExtension from './externalJS';
77

8-
type ModuleExports = zhc.Definition | zhc.Definition[];
8+
type ModuleExports = zhc.ExternalDefinitionWithExtend | zhc.ExternalDefinitionWithExtend[];
99

1010
export default class ExternalConverters extends ExternalJSExtension<ModuleExports> {
1111
constructor(
@@ -43,10 +43,11 @@ export default class ExternalConverters extends ExternalJSExtension<ModuleExport
4343
try {
4444
removeExternalDefinitions(name);
4545

46-
for (const definition of this.getDefinitions(module)) {
46+
const definitions = Array.isArray(module) ? module : [module];
47+
for (const definition of definitions) {
4748
definition.externalConverterName = name;
4849

49-
addDefinition(definition);
50+
addExternalDefinition(definition);
5051
logger.info(`Loaded external converter '${name}'.`);
5152
}
5253

@@ -61,8 +62,4 @@ export default class ExternalConverters extends ExternalJSExtension<ModuleExport
6162
throw error;
6263
}
6364
}
64-
65-
private getDefinitions(module: ModuleExports): zhc.Definition[] {
66-
return Array.isArray(module) ? module : [module];
67-
}
6865
}

lib/extension/homeassistant.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import type * as zhc from 'zigbee-herdsman-converters';
2+
13
import assert from 'node:assert';
24

35
import bind from 'bind-decorator';
46
import stringify from 'json-stable-stringify-without-jsonify';
57

6-
import * as zhc from 'zigbee-herdsman-converters';
7-
88
import logger from '../util/logger';
99
import * as settings from '../util/settings';
1010
import utils, {assertBinaryExpose, assertEnumExpose, assertNumericExpose, isBinaryExpose, isEnumExpose, isNumericExpose} from '../util/utils';

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"winston-transport": "^4.9.0",
6464
"ws": "^8.18.0",
6565
"zigbee-herdsman": "3.2.6",
66-
"zigbee-herdsman-converters": "21.38.0",
66+
"zigbee-herdsman-converters": "22.0.1",
6767
"zigbee2mqtt-frontend": "0.9.4"
6868
},
6969
"devDependencies": {

pnpm-lock.yaml

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/extensions/externalConverters.test.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe('Extension: ExternalConverters', () => {
2828
const rmSyncSpy = vi.spyOn(fs, 'rmSync');
2929
const writeFileSyncSpy = vi.spyOn(fs, 'writeFileSync');
3030

31-
const zhcAddDefinitionSpy = vi.spyOn(zhc, 'addDefinition');
31+
const zhcAddExternalDefinitionSpy = vi.spyOn(zhc, 'addExternalDefinition');
3232
const zhcRemoveExternalDefinitionsSpy = vi.spyOn(zhc, 'removeExternalDefinitions');
3333

3434
const mocksClear = [
@@ -43,7 +43,7 @@ describe('Extension: ExternalConverters', () => {
4343
mkdirSyncSpy,
4444
rmSyncSpy,
4545
writeFileSyncSpy,
46-
zhcAddDefinitionSpy,
46+
zhcAddExternalDefinitionSpy,
4747
zhcRemoveExternalDefinitionsSpy,
4848
];
4949

@@ -129,7 +129,7 @@ describe('Extension: ExternalConverters', () => {
129129
expect(zhcRemoveExternalDefinitionsSpy).toHaveBeenCalledTimes(2);
130130
expect(zhcRemoveExternalDefinitionsSpy).toHaveBeenNthCalledWith(1, 'mock-external-converter-multiple.js');
131131
expect(zhcRemoveExternalDefinitionsSpy).toHaveBeenNthCalledWith(2, 'mock-external-converter.js');
132-
expect(zhcAddDefinitionSpy).toHaveBeenNthCalledWith(
132+
expect(zhcAddExternalDefinitionSpy).toHaveBeenNthCalledWith(
133133
1,
134134
expect.objectContaining({
135135
mock: 1,
@@ -139,7 +139,7 @@ describe('Extension: ExternalConverters', () => {
139139
description: 'external_1',
140140
}),
141141
);
142-
expect(zhcAddDefinitionSpy).toHaveBeenNthCalledWith(
142+
expect(zhcAddExternalDefinitionSpy).toHaveBeenNthCalledWith(
143143
2,
144144
expect.objectContaining({
145145
mock: 2,
@@ -149,7 +149,7 @@ describe('Extension: ExternalConverters', () => {
149149
description: 'external_2',
150150
}),
151151
);
152-
expect(zhcAddDefinitionSpy).toHaveBeenNthCalledWith(
152+
expect(zhcAddExternalDefinitionSpy).toHaveBeenNthCalledWith(
153153
3,
154154
expect.objectContaining({
155155
mock: true,
@@ -206,7 +206,7 @@ describe('Extension: ExternalConverters', () => {
206206
expect(writeFileSyncSpy).toHaveBeenCalledWith(converterFilePath, converterCode, 'utf8');
207207
expect(zhcRemoveExternalDefinitionsSpy).toHaveBeenCalledTimes(1);
208208
expect(zhcRemoveExternalDefinitionsSpy).toHaveBeenNthCalledWith(1, converterName);
209-
expect(zhcAddDefinitionSpy).toHaveBeenCalledWith(
209+
expect(zhcAddExternalDefinitionSpy).toHaveBeenCalledWith(
210210
expect.objectContaining({
211211
mock: true,
212212
zigbeeModel: ['external_converter_device'],
@@ -288,7 +288,7 @@ describe('Extension: ExternalConverters', () => {
288288

289289
const errorMsg = `Invalid definition`;
290290

291-
zhcAddDefinitionSpy.mockImplementationOnce(() => {
291+
zhcAddExternalDefinitionSpy.mockImplementationOnce(() => {
292292
throw new Error(errorMsg);
293293
});
294294

test/extensions/homeassistant.test.ts

+10-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ import assert from 'node:assert';
99

1010
import stringify from 'json-stable-stringify-without-jsonify';
1111

12+
import * as zhc from 'zigbee-herdsman-converters';
13+
import {KeyValueAny} from 'zigbee-herdsman-converters/lib/types';
14+
1215
import {Controller} from '../../lib/controller';
1316
import HomeAssistant from '../../lib/extension/homeassistant';
1417
import * as settings from '../../lib/util/settings';
@@ -79,7 +82,12 @@ describe('Extension: HomeAssistant', () => {
7982

8083
it('Should not have duplicate type/object_ids in a mapping', async () => {
8184
const duplicated: string[] = [];
82-
(await import('zigbee-herdsman-converters')).definitions.forEach((d) => {
85+
86+
(await import('zigbee-herdsman-converters/devices/index')).default.forEach((baseDefinition) => {
87+
const d = zhc.prepareDefinition(
88+
// @ts-expect-error inferred type is wrong
89+
baseDefinition,
90+
);
8391
const exposes = typeof d.exposes == 'function' ? d.exposes(undefined, undefined) : d.exposes;
8492
const device = {
8593
definition: d,
@@ -2256,7 +2264,7 @@ describe('Extension: HomeAssistant', () => {
22562264
await vi.runOnlyPendingTimersAsync();
22572265
await flushPromises();
22582266

2259-
let payload = {
2267+
let payload: KeyValueAny = {
22602268
name: 'Chill scene',
22612269
command_topic: 'zigbee2mqtt/bulb_color_2/set',
22622270
payload_on: '{ "scene_recall": 1 }',

test/extensions/onEvent.test.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import * as settings from '../../lib/util/settings';
1111

1212
const mockOnEvent = vi.fn();
1313
const mockLivoloOnEvent = vi.fn();
14-
const mappedLivolo = zhc.findByModel('TI0001')!;
15-
mappedLivolo.onEvent = mockLivoloOnEvent;
1614
// @ts-expect-error mock
1715
zhc.onEvent = mockOnEvent;
1816

@@ -21,6 +19,11 @@ const mocksClear = [mockMQTTPublishAsync, mockLogger.warning, mockLogger.debug];
2119
describe('Extension: OnEvent', () => {
2220
let controller: Controller;
2321

22+
beforeAll(async () => {
23+
const mappedLivolo = (await zhc.findByDevice(devices.LIVOLO))!;
24+
mappedLivolo.onEvent = mockLivoloOnEvent;
25+
});
26+
2427
beforeEach(async () => {
2528
vi.useFakeTimers();
2629
data.writeDefaultConfiguration();

0 commit comments

Comments
 (0)