import React from "react"; import "@testing-library/jest-dom/extend-expect"; import { getPressedKey, KEYS } from "../keyboard"; import { utils } from "../../"; test("should have keyboard", () => { expect(utils.keyboard).not.toBeNull(); expect(utils.keyboard.getPressedKey).not.toBeNull(); }); test("should return correct Enter key", () => { let key = getPressedKey({ which: 13 } as React.KeyboardEvent); expect(key).toEqual(KEYS.Enter); key = getPressedKey({ keyCode: 13 } as React.KeyboardEvent); expect(key).toEqual(KEYS.Enter); key = getPressedKey({ key: "Enter" } as React.KeyboardEvent); expect(key).toEqual(KEYS.Enter); }); test("should return correct Escape key", () => { let key = getPressedKey({ which: 27 } as React.KeyboardEvent); expect(key).toEqual(KEYS.Escape); key = getPressedKey({ keyCode: 27 } as React.KeyboardEvent); expect(key).toEqual(KEYS.Escape); key = getPressedKey({ key: "Escape" } as React.KeyboardEvent); expect(key).toEqual(KEYS.Escape); }); test("should return correct Space key", () => { let key = getPressedKey({ which: 32 } as React.KeyboardEvent); expect(key).toEqual(KEYS.Space); key = getPressedKey({ keyCode: 32 } as React.KeyboardEvent); expect(key).toEqual(KEYS.Space); key = getPressedKey({ key: " " } as React.KeyboardEvent); expect(key).toEqual(KEYS.Space); }); test("should return correct ArrowUp key", () => { let key = getPressedKey({ which: 38 } as React.KeyboardEvent); expect(key).toEqual(KEYS.ArrowUp); key = getPressedKey({ keyCode: 38 } as React.KeyboardEvent); expect(key).toEqual(KEYS.ArrowUp); key = getPressedKey({ key: "ArrowUp" } as React.KeyboardEvent); expect(key).toEqual(KEYS.ArrowUp); }); test("should return correct ArrowDown key", () => { let key = getPressedKey({ which: 40 } as React.KeyboardEvent); expect(key).toEqual(KEYS.ArrowDown); key = getPressedKey({ keyCode: 40 } as React.KeyboardEvent); expect(key).toEqual(KEYS.ArrowDown); key = getPressedKey({ key: "ArrowDown" } as React.KeyboardEvent); expect(key).toEqual(KEYS.ArrowDown); });