aboutsummaryrefslogtreecommitdiff
path: root/test/content/operators/impls/AddonOperatorFactoryChain.test.ts
blob: c064bb972fac23d4f11c371b10d7bf156c412514 (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
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";

describe("AddonOperatorFactoryChain", () => {
  describe("#create", () => {
    it("returns an operator", () => {
      const sut = new AddonOperatorFactoryChain(
        new MockAddonIndicatorClient(),
        new MockAddonEnabledRepository()
      );
      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;
    });
  });
});