aboutsummaryrefslogtreecommitdiff
path: root/test/content/operators/impls/AddonOperatorFactoryChain.test.ts
blob: 263104ee7d08ef72f6e9a311abcf4c7297ab7235 (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
import AddonOperatorFactoryChain from "../../../../src/content/operators/impls/AddonOperatorFactoryChain";
import EnableAddonOperator from "../../../../src/content/operators/impls/EnableAddonOperator";
import DisableAddonOperator from "../../../../src/content/operators/impls/DisableAddonOperator";
import ToggleAddonOperator from "../../../../src/content/operators/impls/ToggleAddonOperator";
import * as operations from "../../../../src/shared/operations";
import MockAddonIndicatorClient from "../../mock/MockAddonIndicatorClient";
import MockAddonEnabledRepository from "../../mock/MockAddonEnabledRepository";
import MockConsoleFramePresenter from "./MockConsoleFramePresenter";

describe("AddonOperatorFactoryChain", () => {
  describe("#create", () => {
    it("returns an operator", () => {
      const sut = new AddonOperatorFactoryChain(
        new MockAddonIndicatorClient(),
        new MockAddonEnabledRepository(),
        new MockConsoleFramePresenter(false)
      );
      expect(sut.create({ type: operations.ADDON_ENABLE }, 0)).toBeInstanceOf(
        EnableAddonOperator
      );
      expect(sut.create({ type: operations.ADDON_DISABLE }, 0)).toBeInstanceOf(
        DisableAddonOperator
      );
      expect(
        sut.create({ type: operations.ADDON_TOGGLE_ENABLED }, 0)
      ).toBeInstanceOf(ToggleAddonOperator);
      expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeNull;
    });
  });
});