import * as operations from "shared/operations"; describe("operations", () => { describe("#valueOf", () => { it("returns an Operation", () => { const op: operations.Operation = operations.valueOf({ type: operations.SCROLL_VERTICALLY, count: 10, }); expect(op.type).to.equal(operations.SCROLL_VERTICALLY); expect(op.count).to.equal(10); }); it("throws an Error on missing required parameter", () => { expect(() => operations.valueOf({ type: operations.SCROLL_VERTICALLY, }) ).to.throw(TypeError); }); it("fills default valus of optional parameter", () => { const op: operations.Operation = operations.valueOf({ type: operations.COMMAND_SHOW_OPEN, }); expect(op.type).to.equal(operations.COMMAND_SHOW_OPEN); expect(op.alter).to.be.false; }); it("throws an Error on mismatch of parameter", () => { expect(() => operations.valueOf({ type: operations.SCROLL_VERTICALLY, count: "10", }) ).to.throw(TypeError); expect(() => valueOf({ type: operations.COMMAND_SHOW_OPEN, alter: "true", }) ).to.throw(TypeError); }); }); });