UNPKG

inventoresed

Version:

Z-Wave driver written entirely in JavaScript/TypeScript

94 lines (77 loc) 2.42 kB
import fsExtra from "fs-extra"; import { ConfigManager } from "./ConfigManager"; jest.mock("fs-extra"); const readFileMock = fsExtra.readFile as jest.Mock; const pathExistsMock = fsExtra.pathExists as jest.Mock; describe("lib/config/Manufacturers", () => { describe("lookupManufacturer (with missing file)", () => { let configManager: ConfigManager; beforeAll( async () => { pathExistsMock.mockClear(); readFileMock.mockClear(); pathExistsMock.mockResolvedValue(false); readFileMock.mockRejectedValue( new Error("File does not exist"), ); configManager = new ConfigManager(); await configManager.loadManufacturers(); }, // Loading configuration may take a while on CI 30000, ); it("does not throw", () => { expect(() => configManager.lookupManufacturer(0)).not.toThrow(); }); it("returns undefined", async () => { expect(configManager.lookupManufacturer(0x0e)).toBeUndefined(); expect(configManager.lookupManufacturer(0xff)).toBeUndefined(); }); }); describe("lookupManufacturer (with invalid file)", () => { let configManager: ConfigManager; beforeAll( async () => { pathExistsMock.mockClear(); readFileMock.mockClear(); pathExistsMock.mockResolvedValue(true); readFileMock.mockResolvedValue(`{"0x000e": `); configManager = new ConfigManager(); await configManager.loadManufacturers(); }, // Loading configuration may take a while on CI 30000, ); it("does not throw", () => { expect(() => configManager.lookupManufacturer(0x0e)).not.toThrow(); }); it("returns undefined", () => { expect(configManager.lookupManufacturer(0x0e)).toBeUndefined(); }); }); describe("lookupManufacturer()", () => { let configManager: ConfigManager; beforeAll( async () => { pathExistsMock.mockResolvedValue(true); readFileMock.mockResolvedValue( JSON.stringify({ "0x000e": "Test", }), ); configManager = new ConfigManager(); await configManager.loadManufacturers(); }, // Loading configuration may take a while on CI 30000, ); beforeEach(() => { readFileMock.mockClear(); pathExistsMock.mockClear(); }); it("returns the name belonging to the manufacturer ID if it is defined", () => { expect(configManager.lookupManufacturer(0x0e)).toBe("Test"); expect(configManager.lookupManufacturer(0xff)).toBeUndefined(); }); }); });