inventoresed
Version:
Z-Wave driver written entirely in JavaScript/TypeScript
56 lines (50 loc) • 1.36 kB
text/typescript
import {
ZWavePlusCCGet,
ZWavePlusCCReport,
ZWavePlusRoleType,
} from "@zwave-js/cc";
import { CommandClasses } from "@zwave-js/core";
import {
createMockZWaveRequestFrame,
MockZWaveFrameType,
MockZWaveRequestFrame,
} from "@zwave-js/testing";
import path from "path";
import { integrationTest } from "../integrationTestSuite";
integrationTest("Response to Z-Wave Plus Info Get", {
// debug: true,
provisioningDirectory: path.join(__dirname, "fixtures/base_2_nodes"),
nodeCapabilities: {
commandClasses: [
{
ccId: CommandClasses["Z-Wave Plus Info"],
isSupported: true,
version: 2,
},
],
},
testBody: async (driver, node, mockController, mockNode) => {
const zwpRequest = new ZWavePlusCCGet(mockController.host, {
nodeId: mockNode.id,
});
await mockNode.sendToController(
createMockZWaveRequestFrame(zwpRequest),
);
const { payload: response } = await mockNode.expectControllerFrame(
1000,
(
msg,
): msg is MockZWaveRequestFrame & {
payload: ZWavePlusCCReport;
} =>
msg.type === MockZWaveFrameType.Request &&
msg.payload instanceof ZWavePlusCCReport,
);
// Z-Wave+ v2 specifications, section 3.1
expect(response.zwavePlusVersion).toBe(2);
// Z-Wave+ v2 specifications, section 4.1
expect(response.roleType).toBe(
ZWavePlusRoleType.CentralStaticController,
);
},
});