import { expect } from "chai"; import Key from "../../../src/shared/settings/Key"; describe("Key", () => { describe("fromMapKey", () => { it("return for X", () => { const key = Key.fromMapKey("x"); expect(key.key).to.equal("x"); expect(key.shift).to.be.false; expect(key.ctrl).to.be.false; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it("return for Shift+X", () => { const key = Key.fromMapKey("X"); expect(key.key).to.equal("X"); expect(key.shift).to.be.true; expect(key.ctrl).to.be.false; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it("return for Ctrl+X", () => { const key = Key.fromMapKey(""); expect(key.key).to.equal("x"); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it("returns for Ctrl+Meta+X", () => { const key = Key.fromMapKey(""); expect(key.key).to.equal("x"); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.true; }); it("returns for Ctrl+Shift+x", () => { const key = Key.fromMapKey(""); expect(key.key).to.equal("X"); expect(key.shift).to.be.true; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it("returns for Shift+Esc", () => { const key = Key.fromMapKey(""); expect(key.key).to.equal("Esc"); expect(key.shift).to.be.true; expect(key.ctrl).to.be.false; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it("returns for Ctrl+Esc", () => { const key = Key.fromMapKey(""); expect(key.key).to.equal("Esc"); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it("returns for Ctrl+Esc", () => { const key = Key.fromMapKey(""); expect(key.key).to.equal("Space"); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); }); describe("idDigit", () => { it("returns true if the key is a digit", () => { expect(new Key({ key: "0" }).isDigit()).to.be.true; expect(new Key({ key: "9" }).isDigit()).to.be.true; expect(new Key({ key: "9", alt: true }).isDigit()).to.be.false; expect(new Key({ key: "a" }).isDigit()).to.be.false; expect(new Key({ key: "0" }).isDigit()).to.be.false; }); }); describe("equals", () => { it("returns true if the keys are equivalent", () => { expect( new Key({ key: "x", shift: false, ctrl: true, alt: false, meta: false, }).equals( new Key({ key: "x", shift: false, ctrl: true, alt: false, meta: false, }) ) ).to.be.true; expect( new Key({ key: "x", shift: false, ctrl: false, alt: false, meta: false, }).equals( new Key({ key: "X", shift: true, ctrl: false, alt: false, meta: false, }) ) ).to.be.false; }); }); });