47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { readFileSync } from "fs";
|
|
import { layoutKeyToKeycode } from "../../src/ts/utils/key-converter";
|
|
|
|
const isoDvorak = JSON.parse(
|
|
readFileSync(
|
|
import.meta.dirname + "/../../static/layouts/swedish_dvorak.json",
|
|
"utf-8",
|
|
),
|
|
);
|
|
const dvorak = JSON.parse(
|
|
readFileSync(
|
|
import.meta.dirname + "/../../static/layouts/dvorak.json",
|
|
"utf-8",
|
|
),
|
|
);
|
|
|
|
describe("key-converter", () => {
|
|
describe("layoutKeyToKeycode", () => {
|
|
it("handles unknown key", () => {
|
|
const keycode = layoutKeyToKeycode("🤷", isoDvorak);
|
|
|
|
expect(keycode).toBeUndefined();
|
|
});
|
|
it("handles iso backslash", () => {
|
|
const keycode = layoutKeyToKeycode("*", isoDvorak);
|
|
|
|
expect(keycode).toEqual("Backslash");
|
|
});
|
|
it("handles iso IntlBackslash", () => {
|
|
const keycode = layoutKeyToKeycode("<", isoDvorak);
|
|
|
|
expect(keycode).toEqual("IntlBackslash");
|
|
});
|
|
it("handles iso row4", () => {
|
|
const keycode = layoutKeyToKeycode("q", isoDvorak);
|
|
|
|
expect(keycode).toEqual("KeyX");
|
|
});
|
|
it("handles ansi", () => {
|
|
const keycode = layoutKeyToKeycode("q", dvorak);
|
|
|
|
expect(keycode).toEqual("KeyX");
|
|
});
|
|
});
|
|
});
|