import { setupWatch } from "../src/fileWatch"; import { expect } from "chai"; import { stub, createStubInstance } from "sinon"; import CheapWatch from "cheap-watch"; import signal from "signal-js"; describe("fileWatch", () => { describe("setupWatch", () => { it("should exist", () => { expect(setupWatch).to.exist; }); it("should instantiate and initialize CheapWatch", async () => { const consoleStub = stub(console, "log"); const watchInstance = createStubInstance(CheapWatch); const watchConstructorStub = stub().returns(watchInstance); Object.setPrototypeOf(CheapWatch, watchConstructorStub); const result = await setupWatch(signal); expect(result).to.eq(watchInstance); expect(watchConstructorStub).to.have.been.called; expect(watchInstance.init).to.have.been.called; expect(watchInstance.on).to.have.been.calledTwice; consoleStub.restore(); }); }); });