aboutsummaryrefslogtreecommitdiff
path: root/test/content/operators/impls/AddonOperatorFactoryChain.test.ts
blob: dde5a35125c98492a504aaec14c0c2be4e3679de (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
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 { expect } from "chai";
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)).to.be.instanceOf(
        EnableAddonOperator
      );
      expect(
        sut.create({ type: operations.ADDON_DISABLE }, 0)
      ).to.be.instanceOf(DisableAddonOperator);
      expect(
        sut.create({ type: operations.ADDON_TOGGLE_ENABLED }, 0)
      ).to.be.instanceOf(ToggleAddonOperator);
      expect(sut.create({ type: operations.SCROLL_TOP }, 0)).to.be.null;
    });
  });
});