aboutsummaryrefslogtreecommitdiff
path: root/test/background
diff options
context:
space:
mode:
Diffstat (limited to 'test/background')
-rw-r--r--test/background/mock/MockReadyFrameRepository.ts15
-rw-r--r--test/background/operators/impls/FindNextOperator.test.ts30
-rw-r--r--test/background/operators/impls/FindPrevOperator.test.ts30
-rw-r--r--test/background/repositories/FindRepository.test.ts4
-rw-r--r--test/background/repositories/ReadyFrameRepository.test.ts33
-rw-r--r--test/background/usecases/StartFindUseCase.test.ts16
6 files changed, 86 insertions, 42 deletions
diff --git a/test/background/mock/MockReadyFrameRepository.ts b/test/background/mock/MockReadyFrameRepository.ts
new file mode 100644
index 0000000..4a5ec52
--- /dev/null
+++ b/test/background/mock/MockReadyFrameRepository.ts
@@ -0,0 +1,15 @@
+import ReadyFrameRepository from "../../../src/background/repositories/ReadyFrameRepository";
+
+export default class MockReadyFrameRepository implements ReadyFrameRepository {
+ addFrameId(_tabId: number, _fraemId: number): Promise<void> {
+ throw new Error("not implemented");
+ }
+
+ removeFrameId(_tabId: number, _frameId: number): Promise<void> {
+ throw new Error("not implemented");
+ }
+
+ getFrameIds(_tabId: number): Promise<number[] | undefined> {
+ throw new Error("not implemented");
+ }
+}
diff --git a/test/background/operators/impls/FindNextOperator.test.ts b/test/background/operators/impls/FindNextOperator.test.ts
index 0bee3f5..7509ef4 100644
--- a/test/background/operators/impls/FindNextOperator.test.ts
+++ b/test/background/operators/impls/FindNextOperator.test.ts
@@ -4,7 +4,7 @@ import FindNextOperator from "../../../../src/background/operators/impls/FindNex
import MockFindRepository from "../../mock/MockFindRepository";
import MockFindClient from "../../mock/MockFindClient";
import MockConsoleClient from "../../mock/MockConsoleClient";
-import MockFramePresenter from "../../mock/MockFramePresenter";
+import MockReadyFrameRepository from "../../mock/MockReadyFrameRepository";
describe("FindNextOperator", () => {
const keyword = "hello";
@@ -14,13 +14,13 @@ describe("FindNextOperator", () => {
const findRepository = new MockFindRepository();
const findClient = new MockFindClient();
const consoleClient = new MockConsoleClient();
- const framePresenter = new MockFramePresenter();
+ const frameRepository = new MockReadyFrameRepository();
const sut = new FindNextOperator(
tabPresenter,
findRepository,
findClient,
consoleClient,
- framePresenter
+ frameRepository
);
let currentTabId: number;
@@ -32,6 +32,10 @@ describe("FindNextOperator", () => {
active: true,
});
currentTabId = currentTab.id!;
+
+ sinon
+ .stub(frameRepository, "getFrameIds")
+ .returns(Promise.resolve(frameIds));
});
describe("#run", () => {
@@ -54,8 +58,7 @@ describe("FindNextOperator", () => {
sinon.stub(findRepository, "getLocalState").returns(
Promise.resolve({
keyword,
- frameIds,
- framePos: 1,
+ frameId: 100,
})
);
@@ -68,7 +71,7 @@ describe("FindNextOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 1 });
+ .withArgs(currentTabId, { keyword, frameId: 100 });
await sut.run();
@@ -80,8 +83,7 @@ describe("FindNextOperator", () => {
sinon.stub(findRepository, "getLocalState").returns(
Promise.resolve({
keyword,
- frameIds,
- framePos: 1,
+ frameId: 100,
})
);
@@ -102,7 +104,7 @@ describe("FindNextOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 2 });
+ .withArgs(currentTabId, { keyword, frameId: 101 });
await sut.run();
@@ -114,8 +116,7 @@ describe("FindNextOperator", () => {
sinon.stub(findRepository, "getLocalState").returns(
Promise.resolve({
keyword,
- frameIds,
- framePos: 2,
+ frameId: 101,
})
);
@@ -136,7 +137,7 @@ describe("FindNextOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 0 });
+ .withArgs(currentTabId, { keyword, frameId: 0 });
await sut.run();
@@ -151,9 +152,6 @@ describe("FindNextOperator", () => {
sinon
.stub(findRepository, "getGlobalKeyword")
.returns(Promise.resolve(keyword));
- sinon
- .stub(framePresenter, "getAllFrameIds")
- .returns(Promise.resolve(frameIds));
sinon.stub(consoleClient, "showInfo").returns(Promise.resolve());
const mockFindClient = sinon.mock(findClient);
@@ -168,7 +166,7 @@ describe("FindNextOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 0 });
+ .withArgs(currentTabId, { keyword, frameId: 0 });
await sut.run();
diff --git a/test/background/operators/impls/FindPrevOperator.test.ts b/test/background/operators/impls/FindPrevOperator.test.ts
index ebac0dc..090f815 100644
--- a/test/background/operators/impls/FindPrevOperator.test.ts
+++ b/test/background/operators/impls/FindPrevOperator.test.ts
@@ -4,7 +4,7 @@ import FindPrevOperator from "../../../../src/background/operators/impls/FindPre
import MockFindRepository from "../../mock/MockFindRepository";
import MockFindClient from "../../mock/MockFindClient";
import MockConsoleClient from "../../mock/MockConsoleClient";
-import MockFramePresenter from "../../mock/MockFramePresenter";
+import MockReadyFrameRepository from "../../mock/MockReadyFrameRepository";
describe("FindPrevOperator", () => {
const keyword = "hello";
@@ -14,13 +14,13 @@ describe("FindPrevOperator", () => {
const findRepository = new MockFindRepository();
const findClient = new MockFindClient();
const consoleClient = new MockConsoleClient();
- const framePresenter = new MockFramePresenter();
+ const frameRepository = new MockReadyFrameRepository();
const sut = new FindPrevOperator(
tabPresenter,
findRepository,
findClient,
consoleClient,
- framePresenter
+ frameRepository
);
let currentTabId: number;
@@ -32,6 +32,10 @@ describe("FindPrevOperator", () => {
active: true,
});
currentTabId = currentTab.id!;
+
+ sinon
+ .stub(frameRepository, "getFrameIds")
+ .returns(Promise.resolve(frameIds.slice(0)));
});
describe("#run", () => {
@@ -54,8 +58,7 @@ describe("FindPrevOperator", () => {
sinon.stub(findRepository, "getLocalState").returns(
Promise.resolve({
keyword,
- frameIds,
- framePos: 1,
+ frameId: 100,
})
);
@@ -68,7 +71,7 @@ describe("FindPrevOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 1 });
+ .withArgs(currentTabId, { keyword, frameId: 100 });
await sut.run();
@@ -80,8 +83,7 @@ describe("FindPrevOperator", () => {
sinon.stub(findRepository, "getLocalState").returns(
Promise.resolve({
keyword,
- frameIds,
- framePos: 1,
+ frameId: 100,
})
);
@@ -102,7 +104,7 @@ describe("FindPrevOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 0 });
+ .withArgs(currentTabId, { keyword, frameId: 0 });
await sut.run();
@@ -114,8 +116,7 @@ describe("FindPrevOperator", () => {
sinon.stub(findRepository, "getLocalState").returns(
Promise.resolve({
keyword,
- frameIds,
- framePos: 0,
+ frameId: 0,
})
);
@@ -136,7 +137,7 @@ describe("FindPrevOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 2 });
+ .withArgs(currentTabId, { keyword, frameId: 101 });
await sut.run();
@@ -151,9 +152,6 @@ describe("FindPrevOperator", () => {
sinon
.stub(findRepository, "getGlobalKeyword")
.returns(Promise.resolve(keyword));
- sinon
- .stub(framePresenter, "getAllFrameIds")
- .returns(Promise.resolve(frameIds));
sinon.stub(consoleClient, "showInfo").returns(Promise.resolve());
const mockFindClient = sinon.mock(findClient);
@@ -168,7 +166,7 @@ describe("FindPrevOperator", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameIds, framePos: 2 });
+ .withArgs(currentTabId, { keyword, frameId: 101 });
await sut.run();
diff --git a/test/background/repositories/FindRepository.test.ts b/test/background/repositories/FindRepository.test.ts
index a08dc6d..d8c9506 100644
--- a/test/background/repositories/FindRepository.test.ts
+++ b/test/background/repositories/FindRepository.test.ts
@@ -25,12 +25,12 @@ describe("background/repositories/FindRepositoryImpl", () => {
await sut.setLocalState(10, {
keyword: "Hello, world",
- frameIds: [20, 21],
- framePos: 0,
+ frameId: 11,
});
const state = await sut.getLocalState(10);
expect(state?.keyword).to.equal("Hello, world");
+ expect(state?.frameId).to.equal(11);
expect(await sut.getLocalState(20)).to.be.undefined;
});
diff --git a/test/background/repositories/ReadyFrameRepository.test.ts b/test/background/repositories/ReadyFrameRepository.test.ts
new file mode 100644
index 0000000..71f20af
--- /dev/null
+++ b/test/background/repositories/ReadyFrameRepository.test.ts
@@ -0,0 +1,33 @@
+import { expect } from "chai";
+import { ReadyFrameRepositoryImpl } from "../../../src/background/repositories/ReadyFrameRepository";
+
+describe("background/repositories/ReadyFrameRepositoryImpl", () => {
+ let sut: ReadyFrameRepositoryImpl;
+
+ beforeEach(() => {
+ sut = new ReadyFrameRepositoryImpl();
+ });
+
+ it("get and set a keyword", async () => {
+ expect(await sut.getFrameIds(1)).to.be.undefined;
+
+ await sut.addFrameId(1, 10);
+ await sut.addFrameId(1, 12);
+ await sut.addFrameId(1, 11);
+ await sut.addFrameId(2, 20);
+ await sut.addFrameId(2, 21);
+ await sut.addFrameId(2, 21);
+
+ expect(await sut.getFrameIds(1)).to.deep.equal([10, 11, 12]);
+ expect(await sut.getFrameIds(2)).to.deep.equal([20, 21]);
+
+ await sut.removeFrameId(2, 21);
+ expect(await sut.getFrameIds(2)).to.deep.equal([20, 21]);
+
+ await sut.removeFrameId(2, 21);
+ expect(await sut.getFrameIds(2)).to.deep.equal([20]);
+
+ await sut.removeFrameId(2, 20);
+ expect(await sut.getFrameIds(2)).to.be.undefined;
+ });
+});
diff --git a/test/background/usecases/StartFindUseCase.test.ts b/test/background/usecases/StartFindUseCase.test.ts
index 22ff9a5..24e1fdc 100644
--- a/test/background/usecases/StartFindUseCase.test.ts
+++ b/test/background/usecases/StartFindUseCase.test.ts
@@ -2,7 +2,7 @@ import * as sinon from "sinon";
import MockFindClient from "../mock/MockFindClient";
import MockFindRepository from "../mock/MockFindRepository";
import MockConsoleClient from "../mock/MockConsoleClient";
-import MockFramePresenter from "../mock/MockFramePresenter";
+import MockReadyFrameRepository from "../mock/MockReadyFrameRepository";
import StartFindUseCase from "../../../src/background/usecases/StartFindUseCase";
describe("StartFindUseCase", () => {
@@ -13,19 +13,19 @@ describe("StartFindUseCase", () => {
const findClient = new MockFindClient();
const findRepository = new MockFindRepository();
const consoleClient = new MockConsoleClient();
- const framePresenter = new MockFramePresenter();
+ const frameRepository = new MockReadyFrameRepository();
const sut = new StartFindUseCase(
findClient,
findRepository,
consoleClient,
- framePresenter
+ frameRepository
);
beforeEach(async () => {
sinon.restore();
sinon
- .stub(framePresenter, "getAllFrameIds")
+ .stub(frameRepository, "getFrameIds")
.returns(Promise.resolve(frameIds));
});
@@ -46,7 +46,7 @@ describe("StartFindUseCase", () => {
const mockFindRepository = sinon.mock(findRepository);
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { frameIds, framePos: 1, keyword });
+ .withArgs(currentTabId, { keyword, frameId: 100 });
const mockConsoleClient = sinon.mock(consoleClient);
mockConsoleClient
.expects("showInfo")
@@ -76,10 +76,10 @@ describe("StartFindUseCase", () => {
mockFindRepository
.expects("getLocalState")
.withArgs(currentTabId)
- .returns(Promise.resolve({ keyword, frameIds, framePos: 0 }));
+ .returns(Promise.resolve({ keyword, frameId: 0 }));
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { frameIds, framePos: 1, keyword });
+ .withArgs(currentTabId, { keyword, frameId: 100 });
const mockConsoleClient = sinon.mock(consoleClient);
mockConsoleClient
.expects("showInfo")
@@ -115,7 +115,7 @@ describe("StartFindUseCase", () => {
.returns(Promise.resolve(keyword));
mockFindRepository
.expects("setLocalState")
- .withArgs(currentTabId, { frameIds, framePos: 1, keyword });
+ .withArgs(currentTabId, { keyword, frameId: 100 });
const mockConsoleClient = sinon.mock(consoleClient);
mockConsoleClient
.expects("showInfo")