aboutsummaryrefslogtreecommitdiff
path: root/test/content/operators/impls/ScrollOperatorFactoryChain.test.ts
blob: 3ba204ac5c89a8a35ee15e3045621fa5cf07d6f4 (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
42
43
44
45
import ScrollOperatorFactoryChain from "../../../../src/content/operators/impls/ScrollOperatorFactoryChain";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
import HorizontalScrollOperator from "../../../../src/content/operators/impls/HorizontalScrollOperator";
import VerticalScrollOperator from "../../../../src/content/operators/impls/VerticalScrollOperator";
import PageScrollOperator from "../../../../src/content/operators/impls/PageScrollOperator";
import ScrollToTopOperator from "../../../../src/content/operators/impls/ScrollToTopOperator";
import ScrollToBottomOperator from "../../../../src/content/operators/impls/ScrollToBottomOperator";
import ScrollToHomeOperator from "../../../../src/content/operators/impls/ScrollToHomeOperator";
import ScrollToEndOperator from "../../../../src/content/operators/impls/ScrollToEndOperator";
import * as operations from "../../../../src/shared/operations";

describe("ScrollOperatorFactoryChain", () => {
  describe("#create", () => {
    it("returns an operator", () => {
      const sut = new ScrollOperatorFactoryChain(
        new MockScrollPresenter(),
        new MockSettingRepository()
      );
      expect(
        sut.create({ type: operations.SCROLL_HORIZONALLY, count: 10 }, 0)
      ).toBeInstanceOf(HorizontalScrollOperator);
      expect(
        sut.create({ type: operations.SCROLL_VERTICALLY, count: 10 }, 0)
      ).toBeInstanceOf(VerticalScrollOperator);
      expect(
        sut.create({ type: operations.SCROLL_PAGES, count: 10 }, 0)
      ).toBeInstanceOf(PageScrollOperator);
      expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeInstanceOf(
        ScrollToTopOperator
      );
      expect(sut.create({ type: operations.SCROLL_BOTTOM }, 0)).toBeInstanceOf(
        ScrollToBottomOperator
      );
      expect(sut.create({ type: operations.SCROLL_HOME }, 0)).toBeInstanceOf(
        ScrollToHomeOperator
      );
      expect(sut.create({ type: operations.SCROLL_END }, 0)).toBeInstanceOf(
        ScrollToEndOperator
      );
      expect(sut.create({ type: operations.PAGE_HOME, newTab: false }, 0))
        .toBeNull;
    });
  });
});