UNPKG

inventoresed

Version:

Z-Wave driver written entirely in JavaScript/TypeScript

149 lines (136 loc) 3.2 kB
import { LanguageCC, LanguageCCGet, LanguageCCReport, LanguageCCSet, LanguageCommand, } from "@zwave-js/cc"; import { CommandClasses } from "@zwave-js/core"; import { createTestingHost } from "@zwave-js/host"; const host = createTestingHost(); function buildCCBuffer(payload: Buffer): Buffer { return Buffer.concat([ Buffer.from([ CommandClasses.Language, // CC ]), payload, ]); } describe("lib/commandclass/LanguageCC => ", () => { it("the Get command should serialize correctly", () => { const cc = new LanguageCCGet(host, { nodeId: 1 }); const expected = buildCCBuffer( Buffer.from([ LanguageCommand.Get, // CC Command ]), ); expect(cc.serialize()).toEqual(expected); }); it("the Set command should serialize correctly (w/o country code)", () => { const cc = new LanguageCCSet(host, { nodeId: 2, language: "deu", }); const expected = buildCCBuffer( Buffer.from([ LanguageCommand.Set, // CC Command // "deu" 0x64, 0x65, 0x75, ]), ); expect(cc.serialize()).toEqual(expected); }); it("the Set command should serialize correctly (w/ country code)", () => { const cc = new LanguageCCSet(host, { nodeId: 2, language: "deu", country: "DE", }); const expected = buildCCBuffer( Buffer.from([ LanguageCommand.Set, // CC Command // "deu" 0x64, 0x65, 0x75, // "DE" 0x44, 0x45, ]), ); expect(cc.serialize()).toEqual(expected); }); it("the Report command should be deserialized correctly (w/o country code)", () => { const ccData = buildCCBuffer( Buffer.from([ LanguageCommand.Report, // CC Command // "deu" 0x64, 0x65, 0x75, ]), ); const cc = new LanguageCCReport(host, { nodeId: 4, data: ccData, }); expect(cc.language).toBe("deu"); expect(cc.country).toBeUndefined(); }); it("the Report command should be deserialized correctly (w/ country code)", () => { const ccData = buildCCBuffer( Buffer.from([ LanguageCommand.Report, // CC Command // "deu" 0x64, 0x65, 0x75, // "DE" 0x44, 0x45, ]), ); const cc = new LanguageCCReport(host, { nodeId: 4, data: ccData, }); expect(cc.language).toBe("deu"); expect(cc.country).toBe("DE"); }); it("deserializing an unsupported command should return an unspecified version of LanguageCC", () => { const serializedCC = buildCCBuffer( Buffer.from([255]), // not a valid command ); const cc: any = new LanguageCC(host, { nodeId: 4, data: serializedCC, }); expect(cc.constructor).toBe(LanguageCC); }); // it("the CC values should have the correct metadata", () => { // // Readonly, 0-99 // const currentValueMeta = getCCValueMetadata( // CommandClasses.Language, // "currentValue", // ); // expect(currentValueMeta).toMatchObject({ // readable: true, // writeable: false, // min: 0, // max: 99, // }); // // Writeable, 0-99 // const targetValueMeta = getCCValueMetadata( // CommandClasses.Language, // "targetValue", // ); // expect(targetValueMeta).toMatchObject({ // readable: true, // writeable: true, // min: 0, // max: 99, // }); // }); });