aboutsummaryrefslogtreecommitdiff
path: root/test/content/repositories/KeymapRepository.test.ts
blob: 715187bce9e8070732bc8f66c9b289f4f3980404 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import KeymapRepository, {
  KeymapRepositoryImpl,
} from "../../../src/content/repositories/KeymapRepository";
import Key from "../../../src/shared/settings/Key";

describe("KeymapRepositoryImpl", () => {
  let sut: KeymapRepository;

  beforeEach(() => {
    sut = new KeymapRepositoryImpl();
  });

  describe("#enqueueKey()", () => {
    it("enqueues keys", () => {
      sut.enqueueKey(Key.fromMapKey("a"));
      sut.enqueueKey(Key.fromMapKey("b"));
      const sequence = sut.enqueueKey(Key.fromMapKey("c"));

      const keys = sequence.keys;
      expect(keys[0].equals(Key.fromMapKey("a"))).toBeTruthy;
      expect(keys[1].equals(Key.fromMapKey("b"))).toBeTruthy;
      expect(keys[2].equals(Key.fromMapKey("c"))).toBeTruthy;
    });
  });

  describe("#clear()", () => {
    it("clears keys", () => {
      sut.enqueueKey(Key.fromMapKey("a"));
      sut.enqueueKey(Key.fromMapKey("b"));
      sut.enqueueKey(Key.fromMapKey("c"));
      sut.clear();

      const sequence = sut.enqueueKey(Key.fromMapKey("a"));
      expect(sequence.length()).toEqual(1);
    });
  });
});