aboutsummaryrefslogtreecommitdiff
path: root/test/background/operators/impls/CommandOperatorFactoryChain.test.ts
blob: ce8676a2482090ed0abcdbd050028cdaa701cd2b (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
38
39
40
41
import "reflect-metadata";
import CommandOperatorFactoryChain from "../../../../src/background/operators/impls/CommandOperatorFactoryChain";
import MockTabPresenter from "../../mock/MockTabPresenter";
import MockConsoleClient from "../../mock/MockConsoleClient";
import * as operations from "../../../../src/shared/operations";
import ShowCommandOperator from "../../../../src/background/operators/impls/ShowCommandOperator";
import ShowTabOpenCommandOperator from "../../../../src/background/operators/impls/ShowTabOpenCommandOperator";
import ShowWinOpenCommandOperator from "../../../../src/background/operators/impls/ShowWinOpenCommandOperator";
import ShowBufferCommandOperator from "../../../../src/background/operators/impls/ShowBufferCommandOperator";
import ShowAddBookmarkOperator from "../../../../src/background/operators/impls/ShowAddBookmarkOperator";
import StartFindOperator from "../../../../src/background/operators/impls/StartFindOperator";

describe("CommandOperatorFactoryChain", () => {
  describe("#create", () => {
    it("returns a operator for the operation", async () => {
      const tabPresenter = new MockTabPresenter();
      const consoleClient = new MockConsoleClient();
      const sut = new CommandOperatorFactoryChain(tabPresenter, consoleClient);

      expect(sut.create({ type: operations.COMMAND_SHOW })).toBeInstanceOf(
        ShowCommandOperator
      );
      expect(
        sut.create({ type: operations.COMMAND_SHOW_TABOPEN, alter: true })
      ).toBeInstanceOf(ShowTabOpenCommandOperator);
      expect(
        sut.create({ type: operations.COMMAND_SHOW_WINOPEN, alter: true })
      ).toBeInstanceOf(ShowWinOpenCommandOperator);
      expect(
        sut.create({ type: operations.COMMAND_SHOW_BUFFER })
      ).toBeInstanceOf(ShowBufferCommandOperator);
      expect(
        sut.create({ type: operations.COMMAND_SHOW_ADDBOOKMARK, alter: true })
      ).toBeInstanceOf(ShowAddBookmarkOperator);
      expect(sut.create({ type: operations.FIND_START })).toBeInstanceOf(
        StartFindOperator
      );
      expect(sut.create({ type: operations.CANCEL })).toBeNull;
    });
  });
});