diff options
Diffstat (limited to 'test/background/operators/impls')
21 files changed, 239 insertions, 343 deletions
diff --git a/test/background/operators/impls/CancelOperator.test.ts b/test/background/operators/impls/CancelOperator.test.ts index 915becf..a723f6f 100644 --- a/test/background/operators/impls/CancelOperator.test.ts +++ b/test/background/operators/impls/CancelOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import CancelOperator from "../../../../src/background/operators/impls/CancelOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -10,15 +9,14 @@ describe("CancelOperator", () => {        const currenTab = await tabPresenter.create("https://example.com/");        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("hide") -        .withArgs(currenTab?.id); +      const spy = jest +        .spyOn(consoleClient, "hide") +        .mockResolvedValueOnce(undefined);        const sut = new CancelOperator(tabPresenter, consoleClient);        await sut.run(); -      mock.verify(); +      expect(spy).toBeCalledWith(currenTab?.id);      });    });  }); diff --git a/test/background/operators/impls/FindNextOperator.test.ts b/test/background/operators/impls/FindNextOperator.test.ts index 7509ef4..3bb47f0 100644 --- a/test/background/operators/impls/FindNextOperator.test.ts +++ b/test/background/operators/impls/FindNextOperator.test.ts @@ -1,4 +1,3 @@ -import * as sinon from "sinon";  import MockTabPresenter from "../../mock/MockTabPresenter";  import FindNextOperator from "../../../../src/background/operators/impls/FindNextOperator";  import MockFindRepository from "../../mock/MockFindRepository"; @@ -23,155 +22,114 @@ describe("FindNextOperator", () => {      frameRepository    ); +  const findNextSpy = jest.spyOn(findClient, "findNext"); +  const clearSelectionSpy = jest.spyOn(findClient, "clearSelection"); +    let currentTabId: number;    beforeEach(async () => { -    sinon.restore(); -      const currentTab = await tabPresenter.create("https://example.com/", {        active: true,      });      currentTabId = currentTab.id!; -    sinon -      .stub(frameRepository, "getFrameIds") -      .returns(Promise.resolve(frameIds)); +    findNextSpy.mockClear(); +    clearSelectionSpy.mockClear().mockReturnValue(Promise.resolve()); +    jest.spyOn(frameRepository, "getFrameIds").mockResolvedValue(frameIds);    });    describe("#run", () => {      it("shows errors if no previous keywords", async () => { -      sinon -        .stub(findRepository, "getLocalState") -        .returns(Promise.resolve(undefined)); - -      const mock = sinon.mock(consoleClient); -      mock -        .expects("showError") -        .withArgs(currentTabId, "No previous search keywords"); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue(undefined); +      const showErrorSpy = jest +        .spyOn(consoleClient, "showError") +        .mockReturnValue(Promise.resolve());        await sut.run(); -      mock.verify(); +      expect(showErrorSpy).toBeCalledWith( +        currentTabId, +        "No previous search keywords" +      );      });      it("continues a search on the same frame", async () => { -      sinon.stub(findRepository, "getLocalState").returns( -        Promise.resolve({ -          keyword, -          frameId: 100, -        }) -      ); - -      const mockFindClient = sinon.mock(findClient); -      mockFindClient -        .expects("findNext") -        .withArgs(currentTabId, 100, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 100 }); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue({ +        keyword, +        frameId: 100, +      }); +      findNextSpy.mockResolvedValue(true); +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(findNextSpy).toBeCalledWith(currentTabId, 100, keyword); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 100, +      });      });      it("continues a search on next frame", async () => { -      sinon.stub(findRepository, "getLocalState").returns( -        Promise.resolve({ -          keyword, -          frameId: 100, -        }) -      ); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue({ +        keyword, +        frameId: 100, +      }); -      const mockFindClient = sinon.mock(findClient); -      mockFindClient -        .expects("findNext") -        .withArgs(currentTabId, 100, keyword) -        .returns(Promise.resolve(false)); -      mockFindClient -        .expects("clearSelection") -        .withArgs(currentTabId, 100) -        .returns(Promise.resolve()); -      mockFindClient -        .expects("findNext") -        .withArgs(currentTabId, 101, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 101 }); +      findNextSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true); +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(findNextSpy).toBeCalledTimes(2); +      expect(findNextSpy.mock.calls[0][1]).toEqual(100); +      expect(findNextSpy.mock.calls[1][1]).toEqual(101); +      expect(clearSelectionSpy).toBeCalledWith(currentTabId, 100); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 101, +      });      });      it("exercise a wrap-search", async () => { -      sinon.stub(findRepository, "getLocalState").returns( -        Promise.resolve({ -          keyword, -          frameId: 101, -        }) -      ); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue({ +        keyword, +        frameId: 101, +      }); -      const mockFindClient = sinon.mock(findClient); -      mockFindClient -        .expects("findNext") -        .withArgs(currentTabId, 101, keyword) -        .returns(Promise.resolve(false)); -      mockFindClient -        .expects("clearSelection") -        .withArgs(currentTabId, 101) -        .returns(Promise.resolve()); -      mockFindClient -        .expects("findNext") -        .withArgs(currentTabId, 0, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 0 }); +      findNextSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true); +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(findNextSpy).toBeCalledTimes(2); +      expect(findNextSpy.mock.calls[0][1]).toEqual(101); +      expect(findNextSpy.mock.calls[1][1]).toEqual(0); +      expect(clearSelectionSpy).toBeCalledWith(currentTabId, 101); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 0, +      });      });      it("starts a search with last keywords", async () => { -      sinon -        .stub(findRepository, "getLocalState") -        .returns(Promise.resolve(undefined)); -      sinon -        .stub(findRepository, "getGlobalKeyword") -        .returns(Promise.resolve(keyword)); -      sinon.stub(consoleClient, "showInfo").returns(Promise.resolve()); - -      const mockFindClient = sinon.mock(findClient); -      mockFindClient.expects("clearSelection").withArgs(currentTabId, 0); -      mockFindClient.expects("clearSelection").withArgs(currentTabId, 100); -      mockFindClient.expects("clearSelection").withArgs(currentTabId, 101); -      mockFindClient -        .expects("findNext") -        .withArgs(currentTabId, 0, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 0 }); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue(undefined); +      jest.spyOn(findRepository, "getGlobalKeyword").mockResolvedValue(keyword); +      jest.spyOn(consoleClient, "showInfo").mockReturnValue(Promise.resolve()); + +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(clearSelectionSpy).toBeCalledTimes(3); +      expect(clearSelectionSpy.mock.calls[0][1]).toEqual(0); +      expect(clearSelectionSpy.mock.calls[1][1]).toEqual(100); +      expect(clearSelectionSpy.mock.calls[2][1]).toEqual(101); +      expect(findNextSpy).toBeCalledWith(currentTabId, 0, keyword); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 0, +      });      });    });  }); diff --git a/test/background/operators/impls/FindPrevOperator.test.ts b/test/background/operators/impls/FindPrevOperator.test.ts index 090f815..b563076 100644 --- a/test/background/operators/impls/FindPrevOperator.test.ts +++ b/test/background/operators/impls/FindPrevOperator.test.ts @@ -1,4 +1,3 @@ -import * as sinon from "sinon";  import MockTabPresenter from "../../mock/MockTabPresenter";  import FindPrevOperator from "../../../../src/background/operators/impls/FindPrevOperator";  import MockFindRepository from "../../mock/MockFindRepository"; @@ -23,155 +22,113 @@ describe("FindPrevOperator", () => {      frameRepository    ); +  const findPrevSpy = jest.spyOn(findClient, "findPrev"); +  const clearSelectionSpy = jest.spyOn(findClient, "clearSelection"); +    let currentTabId: number;    beforeEach(async () => { -    sinon.restore(); -      const currentTab = await tabPresenter.create("https://example.com/", {        active: true,      });      currentTabId = currentTab.id!; -    sinon -      .stub(frameRepository, "getFrameIds") -      .returns(Promise.resolve(frameIds.slice(0))); +    findPrevSpy.mockClear(); +    clearSelectionSpy.mockClear().mockReturnValue(Promise.resolve()); +    jest.spyOn(frameRepository, "getFrameIds").mockResolvedValue(frameIds);    });    describe("#run", () => {      it("shows errors if no previous keywords", async () => { -      sinon -        .stub(findRepository, "getLocalState") -        .returns(Promise.resolve(undefined)); - -      const mock = sinon.mock(consoleClient); -      mock -        .expects("showError") -        .withArgs(currentTabId, "No previous search keywords"); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue(undefined); +      const showErrorSpy = jest +        .spyOn(consoleClient, "showError") +        .mockReturnValue(Promise.resolve());        await sut.run(); -      mock.verify(); +      expect(showErrorSpy).toBeCalledWith( +        currentTabId, +        "No previous search keywords" +      );      });      it("continues a search on the same frame", async () => { -      sinon.stub(findRepository, "getLocalState").returns( -        Promise.resolve({ -          keyword, -          frameId: 100, -        }) -      ); - -      const mockFindClient = sinon.mock(findClient); -      mockFindClient -        .expects("findPrev") -        .withArgs(currentTabId, 100, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 100 }); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue({ +        keyword, +        frameId: 100, +      }); +      findPrevSpy.mockResolvedValue(true); +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(findPrevSpy).toBeCalledWith(currentTabId, 100, keyword); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 100, +      });      });      it("continues a search on next frame", async () => { -      sinon.stub(findRepository, "getLocalState").returns( -        Promise.resolve({ -          keyword, -          frameId: 100, -        }) -      ); - -      const mockFindClient = sinon.mock(findClient); -      mockFindClient -        .expects("findPrev") -        .withArgs(currentTabId, 100, keyword) -        .returns(Promise.resolve(false)); -      mockFindClient -        .expects("clearSelection") -        .withArgs(currentTabId, 100) -        .returns(Promise.resolve()); -      mockFindClient -        .expects("findPrev") -        .withArgs(currentTabId, 0, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 0 }); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue({ +        keyword, +        frameId: 100, +      }); +      findPrevSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true); +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(findPrevSpy).toBeCalledTimes(2); +      expect(findPrevSpy.mock.calls[0][1]).toEqual(100); +      expect(findPrevSpy.mock.calls[1][1]).toEqual(0); +      expect(clearSelectionSpy).toBeCalledWith(currentTabId, 100); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 0, +      });      });      it("exercise a wrap-search", async () => { -      sinon.stub(findRepository, "getLocalState").returns( -        Promise.resolve({ -          keyword, -          frameId: 0, -        }) -      ); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue({ +        keyword, +        frameId: 0, +      }); -      const mockFindClient = sinon.mock(findClient); -      mockFindClient -        .expects("findPrev") -        .withArgs(currentTabId, 0, keyword) -        .returns(Promise.resolve(false)); -      mockFindClient -        .expects("clearSelection") -        .withArgs(currentTabId, 0) -        .returns(Promise.resolve()); -      mockFindClient -        .expects("findPrev") -        .withArgs(currentTabId, 101, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 101 }); +      findPrevSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true); +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(findPrevSpy).toBeCalledTimes(2); +      expect(findPrevSpy.mock.calls[0][1]).toEqual(0); +      expect(findPrevSpy.mock.calls[1][1]).toEqual(101); +      expect(clearSelectionSpy).toBeCalledWith(currentTabId, 0); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 101, +      });      });      it("starts a search with last keywords", async () => { -      sinon -        .stub(findRepository, "getLocalState") -        .returns(Promise.resolve(undefined)); -      sinon -        .stub(findRepository, "getGlobalKeyword") -        .returns(Promise.resolve(keyword)); -      sinon.stub(consoleClient, "showInfo").returns(Promise.resolve()); - -      const mockFindClient = sinon.mock(findClient); -      mockFindClient.expects("clearSelection").withArgs(currentTabId, 0); -      mockFindClient.expects("clearSelection").withArgs(currentTabId, 100); -      mockFindClient.expects("clearSelection").withArgs(currentTabId, 101); -      mockFindClient -        .expects("findPrev") -        .withArgs(currentTabId, 101, keyword) -        .returns(Promise.resolve(true)); - -      const mockFindRepository = sinon.mock(findRepository); -      mockFindRepository -        .expects("setLocalState") -        .withArgs(currentTabId, { keyword, frameId: 101 }); +      jest.spyOn(findRepository, "getLocalState").mockResolvedValue(undefined); +      jest.spyOn(findRepository, "getGlobalKeyword").mockResolvedValue(keyword); +      jest.spyOn(consoleClient, "showInfo").mockReturnValue(Promise.resolve()); + +      const setLocalStateSpy = jest.spyOn(findRepository, "setLocalState");        await sut.run(); -      mockFindRepository.verify(); -      mockFindClient.verify(); +      expect(clearSelectionSpy).toBeCalledTimes(3); +      expect(clearSelectionSpy.mock.calls[0][1]).toEqual(101); +      expect(clearSelectionSpy.mock.calls[1][1]).toEqual(100); +      expect(clearSelectionSpy.mock.calls[2][1]).toEqual(0); +      expect(findPrevSpy).toBeCalledWith(currentTabId, 101, keyword); +      expect(setLocalStateSpy).toBeCalledWith(currentTabId, { +        keyword, +        frameId: 101, +      });      });    });  }); diff --git a/test/background/operators/impls/NavigateHistoryNextOperator.test.ts b/test/background/operators/impls/NavigateHistoryNextOperator.test.ts index de8f597..8ea925b 100644 --- a/test/background/operators/impls/NavigateHistoryNextOperator.test.ts +++ b/test/background/operators/impls/NavigateHistoryNextOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import NavigateHistoryNextOperator from "../../../../src/background/operators/impls/NavigateHistoryNextOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockNavigateClient from "../../mock/MockNavigateClient"; @@ -7,10 +6,9 @@ describe("NavigateHistoryNextOperator", () => {    describe("#run", () => {      it("send a message to navigate next in the history", async () => {        const navigateClient = new MockNavigateClient(); -      const mock = sinon -        .mock(navigateClient) -        .expects("historyNext") -        .withArgs(1); +      const historyNextSpy = jest +        .spyOn(navigateClient, "historyNext") +        .mockReturnValue(Promise.resolve());        const tabPresenter = new MockTabPresenter();        await tabPresenter.create("https://example.com/1", { active: false });        await tabPresenter.create("https://example.com/2", { active: true }); @@ -19,7 +17,7 @@ describe("NavigateHistoryNextOperator", () => {        await sut.run(); -      mock.verify(); +      expect(historyNextSpy).toBeCalledWith(1);      });    });  }); diff --git a/test/background/operators/impls/NavigateHistoryPrevOperator.test.ts b/test/background/operators/impls/NavigateHistoryPrevOperator.test.ts index 6ebe71e..8221a5c 100644 --- a/test/background/operators/impls/NavigateHistoryPrevOperator.test.ts +++ b/test/background/operators/impls/NavigateHistoryPrevOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import NavigateHistoryPrevOperator from "../../../../src/background/operators/impls/NavigateHistoryPrevOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockNavigateClient from "../../mock/MockNavigateClient"; @@ -7,10 +6,9 @@ describe("NavigateHistoryPrevOperator", () => {    describe("#run", () => {      it("send a message to navigate previous in the history", async () => {        const navigateClient = new MockNavigateClient(); -      const mock = sinon -        .mock(navigateClient) -        .expects("historyPrev") -        .withArgs(1); +      const historyNextSpy = jest +        .spyOn(navigateClient, "historyPrev") +        .mockReturnValue(Promise.resolve());        const tabPresenter = new MockTabPresenter();        await tabPresenter.create("https://example.com/1", { active: false });        await tabPresenter.create("https://example.com/2", { active: true }); @@ -19,7 +17,7 @@ describe("NavigateHistoryPrevOperator", () => {        await sut.run(); -      mock.verify(); +      expect(historyNextSpy).toBeCalledWith(1);      });    });  }); diff --git a/test/background/operators/impls/NavigateLinkNextOperator.test.ts b/test/background/operators/impls/NavigateLinkNextOperator.test.ts index 09c4907..9f19307 100644 --- a/test/background/operators/impls/NavigateLinkNextOperator.test.ts +++ b/test/background/operators/impls/NavigateLinkNextOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import NavigateLinkNextOperator from "../../../../src/background/operators/impls/NavigateLinkNextOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockNavigateClient from "../../mock/MockNavigateClient"; @@ -7,7 +6,9 @@ describe("NavigateLinkNextOperator", () => {    describe("#run", () => {      it("send a message to navigate next page", async () => {        const navigateClient = new MockNavigateClient(); -      const mock = sinon.mock(navigateClient).expects("linkNext").withArgs(1); +      const linkNextSpy = jest +        .spyOn(navigateClient, "linkNext") +        .mockReturnValueOnce(Promise.resolve());        const tabPresenter = new MockTabPresenter();        await tabPresenter.create("https://example.com/1", { active: false });        await tabPresenter.create("https://example.com/2", { active: true }); @@ -16,7 +17,7 @@ describe("NavigateLinkNextOperator", () => {        await sut.run(); -      mock.verify(); +      expect(linkNextSpy).toBeCalledWith(1);      });    });  }); diff --git a/test/background/operators/impls/NavigateLinkPrevOperator.test.ts b/test/background/operators/impls/NavigateLinkPrevOperator.test.ts index 6b7f791..37999bd 100644 --- a/test/background/operators/impls/NavigateLinkPrevOperator.test.ts +++ b/test/background/operators/impls/NavigateLinkPrevOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import NavigateLinkPrevOperator from "../../../../src/background/operators/impls/NavigateLinkPrevOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockNavigateClient from "../../mock/MockNavigateClient"; @@ -7,7 +6,9 @@ describe("NavigateLinkPrevOperator", () => {    describe("#run", () => {      it("send a message to navigate next page", async () => {        const navigateClient = new MockNavigateClient(); -      const mock = sinon.mock(navigateClient).expects("linkPrev").withArgs(1); +      const linkPrevSpy = jest +        .spyOn(navigateClient, "linkPrev") +        .mockReturnValueOnce(Promise.resolve());        const tabPresenter = new MockTabPresenter();        await tabPresenter.create("https://example.com/1", { active: false });        await tabPresenter.create("https://example.com/2", { active: true }); @@ -16,7 +17,7 @@ describe("NavigateLinkPrevOperator", () => {        await sut.run(); -      mock.verify(); +      expect(linkPrevSpy).toBeCalledWith(1);      });    });  }); diff --git a/test/background/operators/impls/ReloadTabOperator.test.ts b/test/background/operators/impls/ReloadTabOperator.test.ts index e87782b..0cedf3e 100644 --- a/test/background/operators/impls/ReloadTabOperator.test.ts +++ b/test/background/operators/impls/ReloadTabOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ReloadTabOperator from "../../../../src/background/operators/impls/ReloadTabOperator";  import MockTabPresenter from "../../mock/MockTabPresenter"; @@ -8,27 +7,28 @@ describe("ReloadTabOperator", () => {        const tabPresenter = new MockTabPresenter();        await tabPresenter.create("https://example.com/", { active: true });        await tabPresenter.create("https://example.com/", { active: false }); -      const mock = sinon.mock(tabPresenter).expects("reload").withArgs(0, true); +      const reloadSpy = jest +        .spyOn(tabPresenter, "reload") +        .mockReturnValue(Promise.resolve());        const sut = new ReloadTabOperator(tabPresenter, true);        await sut.run(); -      mock.verify(); +      expect(reloadSpy).toBeCalledWith(0, true);      });      it("reloads the current tab without cache", async () => {        const tabPresenter = new MockTabPresenter();        await tabPresenter.create("https://example.com/", { active: true });        await tabPresenter.create("https://example.com/", { active: false }); -      const mock = sinon -        .mock(tabPresenter) -        .expects("reload") -        .withArgs(0, false); +      const reloadSpy = jest +        .spyOn(tabPresenter, "reload") +        .mockReturnValue(Promise.resolve());        const sut = new ReloadTabOperator(tabPresenter, false);        await sut.run(); -      mock.verify(); +      expect(reloadSpy).toBeCalledWith(0, false);      });    });  }); diff --git a/test/background/operators/impls/ReopenTabOperator.test.ts b/test/background/operators/impls/ReopenTabOperator.test.ts index 43b1575..5581f9a 100644 --- a/test/background/operators/impls/ReopenTabOperator.test.ts +++ b/test/background/operators/impls/ReopenTabOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ReopenTabOperator from "../../../../src/background/operators/impls/ReopenTabOperator";  import MockTabPresenter from "../../mock/MockTabPresenter"; @@ -6,12 +5,14 @@ describe("ReopenTabOperator", () => {    describe("#run", () => {      it("reopens closed tabs", async () => {        const tabPresenter = new MockTabPresenter(); -      const mock = sinon.mock(tabPresenter).expects("reopen"); +      const reopenSpy = jest +        .spyOn(tabPresenter, "reopen") +        .mockReturnValue(Promise.resolve());        const sut = new ReopenTabOperator(tabPresenter);        await sut.run(); -      mock.verify(); +      expect(reopenSpy).toBeCalled();      });    });  }); diff --git a/test/background/operators/impls/RepeatLastOperator.test.ts b/test/background/operators/impls/RepeatLastOperator.test.ts index 57f1227..fc37615 100644 --- a/test/background/operators/impls/RepeatLastOperator.test.ts +++ b/test/background/operators/impls/RepeatLastOperator.test.ts @@ -3,7 +3,6 @@ import MockRepeatRepository from "../../mock/MockRepeatRepository";  import OperatorFactory from "../../../../src/background/operators/OperatorFactory";  import * as operations from "../../../../src/shared/operations";  import Operator from "../../../../src/background/operators/Operator"; -import sinon from "sinon";  class MockOperatorFactory implements OperatorFactory {    create(_op: operations.Operation): Operator { @@ -21,36 +20,34 @@ describe("RepeatLastOperator", () => {    describe("#run", () => {      it("repeat last operation", async () => {        const operator = new MockOperator(); -      const operatorMock = sinon.mock(operator).expects("run").once(); +      const runSpy = jest +        .spyOn(operator, "run") +        .mockReturnValue(Promise.resolve()); +        const repeatRepository = new MockRepeatRepository();        repeatRepository.setLastOperation({ type: operations.CANCEL });        const operatorFactory = new MockOperatorFactory(); -      const operatorFactoryMock = sinon -        .mock(operatorFactory) -        .expects("create") -        .withArgs({ type: operations.CANCEL }); -      operatorFactoryMock.returns(operator); +      const createSpy = jest +        .spyOn(operatorFactory, "create") +        .mockReturnValue(operator);        const sut = new RepeatLastOperator(repeatRepository, operatorFactory);        await sut.run(); -      operatorFactoryMock.verify(); -      operatorMock.verify(); +      expect(runSpy).toBeCalledTimes(1); +      expect(createSpy).toBeCalledWith({ type: operations.CANCEL });      });      it("does nothing if no last operations", async () => {        const repeatRepository = new MockRepeatRepository();        const operatorFactory = new MockOperatorFactory(); -      const operatorFactoryMock = sinon -        .mock(operatorFactory) -        .expects("create") -        .never(); +      const createSpy = jest.spyOn(operatorFactory, "create");        const sut = new RepeatLastOperator(repeatRepository, operatorFactory);        await sut.run(); -      operatorFactoryMock.verify(); +      expect(createSpy).not.toBeCalled();      });    });  }); diff --git a/test/background/operators/impls/ResetZoomOperator.test.ts b/test/background/operators/impls/ResetZoomOperator.test.ts index 68cda05..40c56d9 100644 --- a/test/background/operators/impls/ResetZoomOperator.test.ts +++ b/test/background/operators/impls/ResetZoomOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ResetZoomOperator from "../../../../src/background/operators/impls/ResetZoomOperator";  import MockZoomPresenter from "../../mock/MockZoomPresenter"; @@ -6,12 +5,14 @@ describe("ResetZoomOperator", () => {    describe("#run", () => {      it("resets zoom on the tab", async () => {        const zoomPresenter = new MockZoomPresenter(); -      const mock = sinon.mock(zoomPresenter).expects("resetZoom").once(); +      const resetZoomSpy = jest +        .spyOn(zoomPresenter, "resetZoom") +        .mockReturnValue(Promise.resolve());        const sut = new ResetZoomOperator(zoomPresenter);        await sut.run(); -      mock.verify(); +      expect(resetZoomSpy).toBeCalled();      });    });  }); diff --git a/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts b/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts index 5d6827d..7872b2f 100644 --- a/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts +++ b/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import MockTabPresenter from "../../mock/MockTabPresenter";  import SelectPreviousSelectedTabOperator from "../../../../src/background/operators/impls/SelectPreviousSelectedTabOperator"; @@ -9,7 +8,7 @@ describe("SelectPreviousSelectedTabOperator", () => {        await tabPresenter.create("https://example.com/1", { active: false });        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false }); -      sinon.stub(tabPresenter, "getLastSelectedId").returns(Promise.resolve(0)); +      jest.spyOn(tabPresenter, "getLastSelectedId").mockResolvedValue(0);        const sut = new SelectPreviousSelectedTabOperator(tabPresenter);        await sut.run(); @@ -23,15 +22,15 @@ describe("SelectPreviousSelectedTabOperator", () => {        await tabPresenter.create("https://example.com/1", { active: false });        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false }); -      sinon -        .stub(tabPresenter, "getLastSelectedId") -        .returns(Promise.resolve(undefined)); -      const mock = sinon.mock(tabPresenter).expects("select").never(); +      jest +        .spyOn(tabPresenter, "getLastSelectedId") +        .mockResolvedValue(undefined); +      const selectSpy = jest.spyOn(tabPresenter, "select");        const sut = new SelectPreviousSelectedTabOperator(tabPresenter);        await sut.run(); -      mock.verify(); +      expect(selectSpy).not.toBeCalled();      });    });  }); diff --git a/test/background/operators/impls/ShowAddBookmarkOperator.test.ts b/test/background/operators/impls/ShowAddBookmarkOperator.test.ts index 1e083c2..aab7451 100644 --- a/test/background/operators/impls/ShowAddBookmarkOperator.test.ts +++ b/test/background/operators/impls/ShowAddBookmarkOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ShowAddBookmarkOperator from "../../../../src/background/operators/impls/ShowAddBookmarkOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,10 +10,9 @@ describe("ShowAddBookmarkOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "addbookmark "); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowAddBookmarkOperator(          tabPresenter, @@ -23,7 +21,7 @@ describe("ShowAddBookmarkOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "addbookmark ");      });      it("show command with addbookmark command and an URL of the current tab", async () => { @@ -32,10 +30,9 @@ describe("ShowAddBookmarkOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "addbookmark welcome, world"); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowAddBookmarkOperator(          tabPresenter, @@ -44,7 +41,7 @@ describe("ShowAddBookmarkOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "addbookmark welcome, world");      });    });  }); diff --git a/test/background/operators/impls/ShowBufferCommandOperator.test.ts b/test/background/operators/impls/ShowBufferCommandOperator.test.ts index 91455b3..fbd1429 100644 --- a/test/background/operators/impls/ShowBufferCommandOperator.test.ts +++ b/test/background/operators/impls/ShowBufferCommandOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ShowBufferCommandOperator from "../../../../src/background/operators/impls/ShowBufferCommandOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,15 +10,14 @@ describe("ShowBufferCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "buffer "); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowBufferCommandOperator(tabPresenter, consoleClient);        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "buffer ");      });    });  }); diff --git a/test/background/operators/impls/ShowCommandOperator.test.ts b/test/background/operators/impls/ShowCommandOperator.test.ts index 83b028c..c07176d 100644 --- a/test/background/operators/impls/ShowCommandOperator.test.ts +++ b/test/background/operators/impls/ShowCommandOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ShowCommandOperator from "../../../../src/background/operators/impls/ShowCommandOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,15 +10,14 @@ describe("ShowCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, ""); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowCommandOperator(tabPresenter, consoleClient);        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "");      });    });  }); diff --git a/test/background/operators/impls/ShowOpenCommandOperator.test.ts b/test/background/operators/impls/ShowOpenCommandOperator.test.ts index 2c2105a..b4f631a 100644 --- a/test/background/operators/impls/ShowOpenCommandOperator.test.ts +++ b/test/background/operators/impls/ShowOpenCommandOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ShowOpenCommandOperator from "../../../../src/background/operators/impls/ShowOpenCommandOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,10 +10,9 @@ describe("ShowOpenCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "open "); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowOpenCommandOperator(          tabPresenter, @@ -23,7 +21,7 @@ describe("ShowOpenCommandOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "open ");      });      it("show command with open command and an URL of the current tab", async () => { @@ -32,10 +30,9 @@ describe("ShowOpenCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "open https://example.com/2"); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowOpenCommandOperator(          tabPresenter, @@ -44,7 +41,7 @@ describe("ShowOpenCommandOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "open https://example.com/2");      });    });  }); diff --git a/test/background/operators/impls/ShowTabOpenCommandOperator.test.ts b/test/background/operators/impls/ShowTabOpenCommandOperator.test.ts index e291d05..1896a08 100644 --- a/test/background/operators/impls/ShowTabOpenCommandOperator.test.ts +++ b/test/background/operators/impls/ShowTabOpenCommandOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ShowTabOpenCommandOperator from "../../../../src/background/operators/impls/ShowTabOpenCommandOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,10 +10,9 @@ describe("ShowTabOpenCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "tabopen "); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowTabOpenCommandOperator(          tabPresenter, @@ -23,7 +21,7 @@ describe("ShowTabOpenCommandOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "tabopen ");      });      it("show command with tabopen command and an URL of the current tab", async () => { @@ -32,10 +30,9 @@ describe("ShowTabOpenCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "tabopen https://example.com/2"); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowTabOpenCommandOperator(          tabPresenter, @@ -44,7 +41,7 @@ describe("ShowTabOpenCommandOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "tabopen https://example.com/2");      });    });  }); diff --git a/test/background/operators/impls/ShowWinOpenCommandOperator.test.ts b/test/background/operators/impls/ShowWinOpenCommandOperator.test.ts index c81a2d4..ce2a5b8 100644 --- a/test/background/operators/impls/ShowWinOpenCommandOperator.test.ts +++ b/test/background/operators/impls/ShowWinOpenCommandOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ShowWinOpenCommandOperator from "../../../../src/background/operators/impls/ShowWinOpenCommandOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,10 +10,9 @@ describe("ShowWinOpenCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "winopen "); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowWinOpenCommandOperator(          tabPresenter, @@ -23,7 +21,7 @@ describe("ShowWinOpenCommandOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "winopen ");      });      it("show command with winopen command and an URL of the current tab", async () => { @@ -32,10 +30,9 @@ describe("ShowWinOpenCommandOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon -        .mock(consoleClient) -        .expects("showCommand") -        .withArgs(1, "winopen https://example.com/2"); +      const showCommandSpy = jest +        .spyOn(consoleClient, "showCommand") +        .mockReturnValue(Promise.resolve());        const sut = new ShowWinOpenCommandOperator(          tabPresenter, @@ -44,7 +41,7 @@ describe("ShowWinOpenCommandOperator", () => {        );        await sut.run(); -      mock.verify(); +      expect(showCommandSpy).toBeCalledWith(1, "winopen https://example.com/2");      });    });  }); diff --git a/test/background/operators/impls/StartFindOperator.test.ts b/test/background/operators/impls/StartFindOperator.test.ts index 7764520..23ebda8 100644 --- a/test/background/operators/impls/StartFindOperator.test.ts +++ b/test/background/operators/impls/StartFindOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import StartFindOperator from "../../../../src/background/operators/impls/StartFindOperator";  import MockTabPresenter from "../../mock/MockTabPresenter";  import MockConsoleClient from "../../mock/MockConsoleClient"; @@ -11,12 +10,14 @@ describe("StartFindOperator", () => {        await tabPresenter.create("https://example.com/2", { active: true });        await tabPresenter.create("https://example.com/3", { active: false });        const consoleClient = new MockConsoleClient(); -      const mock = sinon.mock(consoleClient).expects("showFind").withArgs(1); +      const showFindSpy = jest +        .spyOn(consoleClient, "showFind") +        .mockReturnValue(Promise.resolve());        const sut = new StartFindOperator(tabPresenter, consoleClient);        await sut.run(); -      mock.verify(); +      expect(showFindSpy).toBeCalledWith(1);      });    });  }); diff --git a/test/background/operators/impls/ZoomInOperator.test.ts b/test/background/operators/impls/ZoomInOperator.test.ts index 097e760..1d42421 100644 --- a/test/background/operators/impls/ZoomInOperator.test.ts +++ b/test/background/operators/impls/ZoomInOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ZoomInOperator from "../../../../src/background/operators/impls/ZoomInOperator";  import MockZoomPresenter from "../../mock/MockZoomPresenter"; @@ -6,12 +5,14 @@ describe("ZoomInOperator", () => {    describe("#run", () => {      it("zoom-out the current tab", async () => {        const zoomPresenter = new MockZoomPresenter(); -      const mock = sinon.mock(zoomPresenter).expects("zoomIn").once(); +      const zoomInSpy = jest +        .spyOn(zoomPresenter, "zoomIn") +        .mockReturnValue(Promise.resolve());        const sut = new ZoomInOperator(zoomPresenter);        await sut.run(); -      mock.verify(); +      expect(zoomInSpy).toBeCalled();      });    });  }); diff --git a/test/background/operators/impls/ZoomOutOperator.test.ts b/test/background/operators/impls/ZoomOutOperator.test.ts index e0bbcd9..3165707 100644 --- a/test/background/operators/impls/ZoomOutOperator.test.ts +++ b/test/background/operators/impls/ZoomOutOperator.test.ts @@ -1,4 +1,3 @@ -import sinon from "sinon";  import ZoomOutOperator from "../../../../src/background/operators/impls/ZoomOutOperator";  import MockZoomPresenter from "../../mock/MockZoomPresenter"; @@ -6,12 +5,14 @@ describe("ZoomOutOperator", () => {    describe("#run", () => {      it("zoom-in the current tab", async () => {        const zoomPresenter = new MockZoomPresenter(); -      const mock = sinon.mock(zoomPresenter).expects("zoomOut").once(); +      const zoomOutSpy = jest +        .spyOn(zoomPresenter, "zoomOut") +        .mockReturnValue(Promise.resolve());        const sut = new ZoomOutOperator(zoomPresenter);        await sut.run(); -      mock.verify(); +      expect(zoomOutSpy).toBeCalled();      });    });  });  | 
