aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/background/completion/OpenCompletionUseCase.test.ts102
-rw-r--r--test/background/completion/PropertyCompletionUseCase.test.ts5
-rw-r--r--test/background/completion/TabCompletionUseCase.test.ts104
-rw-r--r--test/background/completion/impl/filters.test.ts15
-rw-r--r--test/background/infrastructures/MemoryStorage.test.ts15
-rw-r--r--test/background/mock/MockFramePresenter.ts7
-rw-r--r--test/background/operators/impls/CancelOperator.test.ts10
-rw-r--r--test/background/operators/impls/CloseTabOperator.test.ts7
-rw-r--r--test/background/operators/impls/CloseTabRightOperator.test.ts3
-rw-r--r--test/background/operators/impls/CommandOperatorFactoryChain.test.ts15
-rw-r--r--test/background/operators/impls/DuplicateTabOperator.test.ts3
-rw-r--r--test/background/operators/impls/FindNextOperator.test.ts176
-rw-r--r--test/background/operators/impls/FindOperatorFactoryChain.ts5
-rw-r--r--test/background/operators/impls/FindPrevOperator.test.ts177
-rw-r--r--test/background/operators/impls/InternalOpenURLOperator.test.ts0
-rw-r--r--test/background/operators/impls/InternalOperatorFactoryChain.test.ts7
-rw-r--r--test/background/operators/impls/NavigateHistoryNextOperator.test.ts10
-rw-r--r--test/background/operators/impls/NavigateHistoryPrevOperator.test.ts10
-rw-r--r--test/background/operators/impls/NavigateLinkNextOperator.test.ts7
-rw-r--r--test/background/operators/impls/NavigateLinkPrevOperator.test.ts7
-rw-r--r--test/background/operators/impls/NavigateOperatorFactoryChain.test.ts19
-rw-r--r--test/background/operators/impls/NavigateParentOperator.test.ts9
-rw-r--r--test/background/operators/impls/NavigateRootOperator.test.ts3
-rw-r--r--test/background/operators/impls/OpenHomeOperator.test.ts10
-rw-r--r--test/background/operators/impls/OpenSourceOperator.test.ts3
-rw-r--r--test/background/operators/impls/PinTabOperator.test.ts3
-rw-r--r--test/background/operators/impls/ReloadTabOperator.test.ts16
-rw-r--r--test/background/operators/impls/ReopenTabOperator.test.ts7
-rw-r--r--test/background/operators/impls/RepeatLastOperator.test.ts25
-rw-r--r--test/background/operators/impls/RepeatOperatorFactoryChain.test.ts5
-rw-r--r--test/background/operators/impls/ResetZoomOperator.test.ts7
-rw-r--r--test/background/operators/impls/SelectFirstTabOperator.test.ts3
-rw-r--r--test/background/operators/impls/SelectLastTabOperator.test.ts3
-rw-r--r--test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts16
-rw-r--r--test/background/operators/impls/SelectTabNextOperator.test.ts5
-rw-r--r--test/background/operators/impls/SelectTabPrevOperator.test.ts5
-rw-r--r--test/background/operators/impls/ShowAddBookmarkOperator.test.ts19
-rw-r--r--test/background/operators/impls/ShowBufferCommandOperator.test.ts10
-rw-r--r--test/background/operators/impls/ShowCommandOperator.test.ts10
-rw-r--r--test/background/operators/impls/ShowOpenCommandOperator.test.ts19
-rw-r--r--test/background/operators/impls/ShowTabOpenCommandOperator.test.ts19
-rw-r--r--test/background/operators/impls/ShowWinOpenCommandOperator.test.ts19
-rw-r--r--test/background/operators/impls/StartFindOperator.test.ts7
-rw-r--r--test/background/operators/impls/TabOperatorFactoryChain.test.ts35
-rw-r--r--test/background/operators/impls/TogglePinnedTabOperator.test.ts5
-rw-r--r--test/background/operators/impls/UnpinTabOperator.test.ts3
-rw-r--r--test/background/operators/impls/ZoomInOperator.test.ts7
-rw-r--r--test/background/operators/impls/ZoomOperatorFactoryChain.test.ts9
-rw-r--r--test/background/operators/impls/ZoomOutOperator.test.ts7
-rw-r--r--test/background/repositories/FindRepository.test.ts13
-rw-r--r--test/background/repositories/Mark.test.ts11
-rw-r--r--test/background/repositories/ReadyFrameRepository.test.ts13
-rw-r--r--test/background/usecases/SettingUseCase.test.ts64
-rw-r--r--test/background/usecases/StartFindUseCase.test.ts229
-rw-r--r--test/background/usecases/parsers.test.ts30
-rw-r--r--test/console/app/actions.test.ts25
-rw-r--r--test/console/app/reducer.test.ts21
-rw-r--r--test/console/commandline/CommandLineParser.test.ts13
-rw-r--r--test/console/commandline/CommandParser.test.ts9
-rw-r--r--test/console/completion/reducer.test.ts43
-rw-r--r--test/console/components/ErrorMessage.test.tsx7
-rw-r--r--test/console/components/InfoMessage.test.tsx7
-rw-r--r--test/console/components/console/Completion.test.tsx61
-rw-r--r--test/console/components/console/CompletionItem.test.tsx7
-rw-r--r--test/console/components/console/CompletionTitle.test.tsx3
-rw-r--r--test/content/InputDriver.test.ts71
-rw-r--r--test/content/domains/KeySequence.test.ts77
-rw-r--r--test/content/operators/impls/AddonOperatorFactoryChain.test.ts13
-rw-r--r--test/content/operators/impls/BackgroundOperationOperator.test.ts3
-rw-r--r--test/content/operators/impls/ClipboardOperatorFactoryChain.test.ts7
-rw-r--r--test/content/operators/impls/DisableAddonOperator.test.ts7
-rw-r--r--test/content/operators/impls/EnableAddonOperator.test.ts7
-rw-r--r--test/content/operators/impls/EnableJumpMarkOperator.test.ts3
-rw-r--r--test/content/operators/impls/EnableSetMarkOperator.test.ts3
-rw-r--r--test/content/operators/impls/FocusOperator.test.ts7
-rw-r--r--test/content/operators/impls/FocusOperatorFactoryChain.test.ts5
-rw-r--r--test/content/operators/impls/FollowOperatorFactoryChain.test.ts12
-rw-r--r--test/content/operators/impls/HorizontalScrollOperator.test.ts5
-rw-r--r--test/content/operators/impls/MarkOperatorFactoryChain.test.ts7
-rw-r--r--test/content/operators/impls/PageScrollOperator.test.ts5
-rw-r--r--test/content/operators/impls/PasteOperator.test.ts22
-rw-r--r--test/content/operators/impls/ScrollOperatorFactoryChain.test.ts23
-rw-r--r--test/content/operators/impls/ScrollToBottomOperator.test.ts3
-rw-r--r--test/content/operators/impls/ScrollToEndOperator.test.ts3
-rw-r--r--test/content/operators/impls/ScrollToHomeOperator.test.ts3
-rw-r--r--test/content/operators/impls/ScrollToTopOperator.test.ts3
-rw-r--r--test/content/operators/impls/StartFollowOperator.test.ts10
-rw-r--r--test/content/operators/impls/ToggleAddonOperator.test.ts13
-rw-r--r--test/content/operators/impls/VerticalScrollOperator.test.ts5
-rw-r--r--test/content/operators/impls/YankURLOperator.test.ts7
-rw-r--r--test/content/presenters/Hint.test.html1
-rw-r--r--test/content/presenters/Hint.test.ts35
-rw-r--r--test/content/presenters/NavigationPresenter.test.ts13
-rw-r--r--test/content/repositories/AddonEnabledRepository.test.ts5
-rw-r--r--test/content/repositories/FollowKeyRepository.test.ts11
-rw-r--r--test/content/repositories/FollowMasterRepository.test.ts25
-rw-r--r--test/content/repositories/FollowSlaveRepository.test.ts9
-rw-r--r--test/content/repositories/KeymapRepository.test.ts11
-rw-r--r--test/content/repositories/MarkKeyRepository.test.ts15
-rw-r--r--test/content/repositories/MarkRepository.test.ts5
-rw-r--r--test/content/repositories/SettingRepository.test.ts3
-rw-r--r--test/content/usecases/AddonEnabledUseCase.test.ts31
-rw-r--r--test/content/usecases/HintKeyProducer.test.ts13
-rw-r--r--test/content/usecases/KeymapUseCase.test.ts107
-rw-r--r--test/content/usecases/MarkUseCase.test.ts15
-rw-r--r--test/content/usecases/SettingUseCaase.test.ts5
-rw-r--r--test/settings/components/form/BlacklistForm.test.tsx24
-rw-r--r--test/settings/components/form/KeymapsForm.test.tsx15
-rw-r--r--test/settings/components/form/PropertiesForm.test.tsx23
-rw-r--r--test/settings/components/form/SearchEngineForm.test.tsx37
-rw-r--r--test/settings/components/ui/Radio.test.tsx15
-rw-r--r--test/settings/components/ui/Text.test.tsx15
-rw-r--r--test/settings/components/ui/TextArea.test.tsx18
-rw-r--r--test/settings/reducers/setting.test.ts23
-rw-r--r--test/shared/SettingData.test.ts25
-rw-r--r--test/shared/operations.test.ts15
-rw-r--r--test/shared/settings/Blacklist.test.ts83
-rw-r--r--test/shared/settings/Key.test.ts95
-rw-r--r--test/shared/settings/Keymaps.test.ts13
-rw-r--r--test/shared/settings/Properties.test.ts5
-rw-r--r--test/shared/settings/Search.test.ts15
-rw-r--r--test/shared/settings/Settings.test.ts15
-rw-r--r--test/shared/urls.test.ts33
123 files changed, 1194 insertions, 1452 deletions
diff --git a/test/background/completion/OpenCompletionUseCase.test.ts b/test/background/completion/OpenCompletionUseCase.test.ts
index f43e6c1..5ab9d5e 100644
--- a/test/background/completion/OpenCompletionUseCase.test.ts
+++ b/test/background/completion/OpenCompletionUseCase.test.ts
@@ -11,8 +11,6 @@ import CachedSettingRepository from "../../../src/background/repositories/Cached
import Settings, {
DefaultSetting,
} from "../../../src/shared/settings/Settings";
-import { expect } from "chai";
-import sinon from "sinon";
import Properties from "../../../src/shared/settings/Properties";
import Search from "../../../src/shared/settings/Search";
@@ -61,19 +59,17 @@ describe("OpenCompletionUseCase", () => {
describe("#getCompletionTypes", () => {
it("returns completion types from the property", async () => {
- sinon.stub(settingRepository, "get").returns(
- Promise.resolve(
- new Settings({
- keymaps: DefaultSetting.keymaps,
- search: DefaultSetting.search,
- properties: new Properties({ complete: "shb" }),
- blacklist: DefaultSetting.blacklist,
- })
- )
+ jest.spyOn(settingRepository, "get").mockResolvedValueOnce(
+ new Settings({
+ keymaps: DefaultSetting.keymaps,
+ search: DefaultSetting.search,
+ properties: new Properties({ complete: "shb" }),
+ blacklist: DefaultSetting.blacklist,
+ })
);
const items = await sut.getCompletionTypes();
- expect(items).to.deep.equal([
+ expect(items).toEqual([
CompletionType.SearchEngines,
CompletionType.History,
CompletionType.Bookmarks,
@@ -83,77 +79,73 @@ describe("OpenCompletionUseCase", () => {
describe("#requestSearchEngines", () => {
it("returns search engines matches by the query", async () => {
- sinon.stub(settingRepository, "get").returns(
- Promise.resolve(
- new Settings({
- keymaps: DefaultSetting.keymaps,
- search: new Search("google", {
- google: "https://google.com/search?q={}",
- yahoo: "https://search.yahoo.com/search?q={}",
- bing: "https://bing.com/search?q={}",
- googleja: "https://google.co.jp/search?q={}",
- }),
- properties: DefaultSetting.properties,
- blacklist: DefaultSetting.blacklist,
- })
- )
+ jest.spyOn(settingRepository, "get").mockResolvedValue(
+ new Settings({
+ keymaps: DefaultSetting.keymaps,
+ search: new Search("google", {
+ google: "https://google.com/search?q={}",
+ yahoo: "https://search.yahoo.com/search?q={}",
+ bing: "https://bing.com/search?q={}",
+ googleja: "https://google.co.jp/search?q={}",
+ }),
+ properties: DefaultSetting.properties,
+ blacklist: DefaultSetting.blacklist,
+ })
);
- expect(await sut.requestSearchEngines("")).to.deep.equal([
+ expect(await sut.requestSearchEngines("")).toEqual([
"google",
"yahoo",
"bing",
"googleja",
]);
- expect(await sut.requestSearchEngines("go")).to.deep.equal([
+ expect(await sut.requestSearchEngines("go")).toEqual([
"google",
"googleja",
]);
- expect(await sut.requestSearchEngines("x")).to.be.empty;
+ expect(await sut.requestSearchEngines("x")).toHaveLength(0);
});
});
describe("#requestBookmarks", () => {
it("returns bookmarks from the repository", async () => {
- sinon
- .stub(bookmarkRepository, "queryBookmarks")
- .withArgs("site")
- .returns(
- Promise.resolve([
- { title: "site1", url: "https://site1.example.com" },
- { title: "site2", url: "https://site2.example.com/" },
- ])
- )
- .withArgs("xyz")
- .returns(Promise.resolve([]));
+ const spy = jest
+ .spyOn(bookmarkRepository, "queryBookmarks")
+ .mockResolvedValueOnce([
+ { title: "site1", url: "https://site1.example.com" },
+ { title: "site2", url: "https://site2.example.com/" },
+ ])
+ .mockResolvedValueOnce([]);
- expect(await sut.requestBookmarks("site")).to.deep.equal([
+ expect(await sut.requestBookmarks("site")).toEqual([
{ title: "site1", url: "https://site1.example.com" },
{ title: "site2", url: "https://site2.example.com/" },
]);
- expect(await sut.requestBookmarks("xyz")).to.be.empty;
+ expect(await sut.requestBookmarks("xyz")).toHaveLength(0);
+ expect(spy).toBeCalledTimes(2);
+ expect(spy.mock.calls[0][0]).toEqual("site");
+ expect(spy.mock.calls[1][0]).toEqual("xyz");
});
});
describe("#requestHistory", () => {
it("returns histories from the repository", async () => {
- sinon
- .stub(historyRepository, "queryHistories")
- .withArgs("site")
- .returns(
- Promise.resolve([
- { title: "site1", url: "https://site1.example.com" },
- { title: "site2", url: "https://site2.example.com/" },
- ])
- )
- .withArgs("xyz")
- .returns(Promise.resolve([]));
+ const spy = jest
+ .spyOn(historyRepository, "queryHistories")
+ .mockResolvedValueOnce([
+ { title: "site1", url: "https://site1.example.com" },
+ { title: "site2", url: "https://site2.example.com/" },
+ ])
+ .mockResolvedValueOnce([]);
- expect(await sut.requestHistory("site")).to.deep.equal([
+ expect(await sut.requestHistory("site")).toEqual([
{ title: "site1", url: "https://site1.example.com" },
{ title: "site2", url: "https://site2.example.com/" },
]);
- expect(await sut.requestHistory("xyz")).to.be.empty;
+ expect(await sut.requestHistory("xyz")).toHaveLength(0);
+ expect(spy).toBeCalledTimes(2);
+ expect(spy.mock.calls[0][0]).toEqual("site");
+ expect(spy.mock.calls[1][0]).toEqual("xyz");
});
});
});
diff --git a/test/background/completion/PropertyCompletionUseCase.test.ts b/test/background/completion/PropertyCompletionUseCase.test.ts
index dfc989f..b008eb5 100644
--- a/test/background/completion/PropertyCompletionUseCase.test.ts
+++ b/test/background/completion/PropertyCompletionUseCase.test.ts
@@ -1,6 +1,5 @@
import "reflect-metadata";
import PropertyCompletionUseCase from "../../../src/background/completion/PropertyCompletionUseCase";
-import { expect } from "chai";
describe("PropertyCompletionUseCase", () => {
describe("getProperties", () => {
@@ -8,11 +7,11 @@ describe("PropertyCompletionUseCase", () => {
const sut = new PropertyCompletionUseCase();
const properties = await sut.getProperties();
- expect(properties).to.deep.contain({
+ expect(properties).toContainEqual({
name: "smoothscroll",
type: "boolean",
});
- expect(properties).to.deep.contain({ name: "complete", type: "string" });
+ expect(properties).toContainEqual({ name: "complete", type: "string" });
});
});
});
diff --git a/test/background/completion/TabCompletionUseCase.test.ts b/test/background/completion/TabCompletionUseCase.test.ts
index 319f217..c006b65 100644
--- a/test/background/completion/TabCompletionUseCase.test.ts
+++ b/test/background/completion/TabCompletionUseCase.test.ts
@@ -3,8 +3,6 @@ import TabRepositoryImpl from "../../../src/background/completion/impl/TabReposi
import { Tab } from "../../../src/background/completion/TabRepository";
import TabPresenter from "../../../src/background/presenters/TabPresenter";
import TabCompletionUseCase from "../../../src/background/completion/TabCompletionUseCase";
-import sinon from "sinon";
-import { expect } from "chai";
import TabFlag from "../../../src/shared/TabFlag";
class MockTabRepository implements TabRepositoryImpl {
@@ -98,43 +96,39 @@ describe("TabCompletionUseCase", () => {
tabPresenter = new MockTabPresenter();
sut = new TabCompletionUseCase(tabRepository, tabPresenter);
- sinon.stub(tabPresenter, "getLastSelectedId").returns(Promise.resolve(12));
- sinon.stub(tabRepository, "getAllTabs").returns(
- Promise.resolve([
- {
- id: 10,
- index: 0,
- title: "Google",
- url: "https://google.com/",
- faviconUrl: "https://google.com/favicon.ico",
- active: false,
- },
- {
- id: 11,
- index: 1,
- title: "Yahoo",
- url: "https://yahoo.com/",
- faviconUrl: "https://yahoo.com/favicon.ico",
- active: true,
- },
- {
- id: 12,
- index: 2,
- title: "Bing",
- url: "https://bing.com/",
- active: false,
- },
- ])
- );
+ jest.spyOn(tabPresenter, "getLastSelectedId").mockResolvedValue(12);
+ jest.spyOn(tabRepository, "getAllTabs").mockResolvedValue([
+ {
+ id: 10,
+ index: 0,
+ title: "Google",
+ url: "https://google.com/",
+ faviconUrl: "https://google.com/favicon.ico",
+ active: false,
+ },
+ {
+ id: 11,
+ index: 1,
+ title: "Yahoo",
+ url: "https://yahoo.com/",
+ faviconUrl: "https://yahoo.com/favicon.ico",
+ active: true,
+ },
+ {
+ id: 12,
+ index: 2,
+ title: "Bing",
+ url: "https://bing.com/",
+ active: false,
+ },
+ ]);
});
describe("#queryTabs", () => {
it("returns tab items", async () => {
- sinon
- .stub(tabRepository, "queryTabs")
- .withArgs("", false)
- .returns(
- Promise.resolve([
+ jest.spyOn(tabRepository, "queryTabs").mockImplementation((keyword) =>
+ Promise.resolve(
+ [
{
id: 10,
index: 0,
@@ -158,31 +152,13 @@ describe("TabCompletionUseCase", () => {
url: "https://bing.com/",
active: false,
},
- ])
+ ].filter(
+ (item) => item.title.includes(keyword) || item.url.includes(keyword)
+ )
)
- .withArgs("oo", false)
- .returns(
- Promise.resolve([
- {
- id: 10,
- index: 0,
- title: "Google",
- url: "https://google.com/",
- faviconUrl: "https://google.com/favicon.ico",
- active: false,
- },
- {
- id: 11,
- index: 1,
- title: "Yahoo",
- url: "https://yahoo.com/",
- faviconUrl: "https://yahoo.com/favicon.ico",
- active: true,
- },
- ])
- );
+ );
- expect(await sut.queryTabs("", false)).to.deep.equal([
+ expect(await sut.queryTabs("", false)).toEqual([
{
index: 1,
title: "Google",
@@ -206,7 +182,7 @@ describe("TabCompletionUseCase", () => {
},
]);
- expect(await sut.queryTabs("oo", false)).to.deep.equal([
+ expect(await sut.queryTabs("oo", false)).toEqual([
{
index: 1,
title: "Google",
@@ -225,7 +201,7 @@ describe("TabCompletionUseCase", () => {
});
it("returns a tab by the index", async () => {
- expect(await sut.queryTabs("1", false)).to.deep.equal([
+ expect(await sut.queryTabs("1", false)).toEqual([
{
index: 1,
title: "Google",
@@ -235,12 +211,12 @@ describe("TabCompletionUseCase", () => {
},
]);
- expect(await sut.queryTabs("10", false)).to.be.empty;
- expect(await sut.queryTabs("-1", false)).to.be.empty;
+ expect(await sut.queryTabs("10", false)).toHaveLength(0);
+ expect(await sut.queryTabs("-1", false)).toHaveLength(0);
});
it("returns the current tab by % flag", async () => {
- expect(await sut.queryTabs("%", false)).to.deep.equal([
+ expect(await sut.queryTabs("%", false)).toEqual([
{
index: 2,
title: "Yahoo",
@@ -252,7 +228,7 @@ describe("TabCompletionUseCase", () => {
});
it("returns the current tab by # flag", async () => {
- expect(await sut.queryTabs("#", false)).to.deep.equal([
+ expect(await sut.queryTabs("#", false)).toEqual([
{
index: 3,
title: "Bing",
diff --git a/test/background/completion/impl/filters.test.ts b/test/background/completion/impl/filters.test.ts
index b160944..5dd1a93 100644
--- a/test/background/completion/impl/filters.test.ts
+++ b/test/background/completion/impl/filters.test.ts
@@ -1,5 +1,4 @@
import * as filters from "../../../../src/background/completion/impl/filters";
-import { expect } from "chai";
describe("background/usecases/filters", () => {
describe("filterHttp", () => {
@@ -13,7 +12,7 @@ describe("background/usecases/filters", () => {
const filtered = filters.filterHttp(pages);
const urls = filtered.map((x) => x.url);
- expect(urls).to.deep.equal([
+ expect(urls).toEqual([
"https://i-beam.org/bar",
"http://i-beam.net/hoge",
"http://i-beam.net/fuga",
@@ -30,7 +29,7 @@ describe("background/usecases/filters", () => {
];
const filtered = filters.filterBlankTitle(pages);
- expect(filtered).to.deep.equal([{ id: "0", title: "hello" }]);
+ expect(filtered).toEqual([{ id: "0", title: "hello" }]);
});
});
@@ -45,7 +44,7 @@ describe("background/usecases/filters", () => {
const filtered = filters.filterByTailingSlash(pages);
const urls = filtered.map((x) => x.url);
- expect(urls).to.deep.equal([
+ expect(urls).toEqual([
"http://i-beam.org/content",
"http://i-beam.org/search",
"http://i-beam.org/search?q=apple_banana_cherry",
@@ -64,7 +63,7 @@ describe("background/usecases/filters", () => {
{ id: "5", url: "http://i-beam.org/request?q=apple_banana_cherry" },
];
const filtered = filters.filterByPathname(pages, 10);
- expect(filtered).to.have.lengthOf(6);
+ expect(filtered).toHaveLength(6);
});
it("filters by length of pathname", () => {
@@ -77,7 +76,7 @@ describe("background/usecases/filters", () => {
{ id: "5", url: "http://i-beam.net/search?q=apple_banana_cherry" },
];
const filtered = filters.filterByPathname(pages, 0);
- expect(filtered).to.deep.equal([
+ expect(filtered).toEqual([
{ id: "0", url: "http://i-beam.org/search?q=apple" },
{ id: "3", url: "http://i-beam.net/search?q=apple" },
]);
@@ -95,7 +94,7 @@ describe("background/usecases/filters", () => {
{ id: "5", url: "http://i-beam.org/request?q=apple_banana_cherry" },
];
const filtered = filters.filterByOrigin(pages, 10);
- expect(filtered).to.have.lengthOf(6);
+ expect(filtered).toHaveLength(6);
});
it("filters by length of pathname", () => {
@@ -108,7 +107,7 @@ describe("background/usecases/filters", () => {
{ id: "5", url: "http://i-beam.org/request?q=apple_banana_cherry" },
];
const filtered = filters.filterByOrigin(pages, 0);
- expect(filtered).to.deep.equal([
+ expect(filtered).toEqual([
{ id: "0", url: "http://i-beam.org/search?q=apple" },
]);
});
diff --git a/test/background/infrastructures/MemoryStorage.test.ts b/test/background/infrastructures/MemoryStorage.test.ts
index 1c67b18..6618549 100644
--- a/test/background/infrastructures/MemoryStorage.test.ts
+++ b/test/background/infrastructures/MemoryStorage.test.ts
@@ -1,22 +1,21 @@
import MemoryStorage from "../../../src/background/infrastructures/MemoryStorage";
-import { expect } from "chai";
describe("background/infrastructures/memory-storage", () => {
it("stores values", () => {
const cache = new MemoryStorage();
cache.set("number", 123);
- expect(cache.get("number")).to.equal(123);
+ expect(cache.get("number")).toEqual(123);
cache.set("string", "123");
- expect(cache.get("string")).to.equal("123");
+ expect(cache.get("string")).toEqual("123");
cache.set("object", { hello: "123" });
- expect(cache.get("object")).to.deep.equal({ hello: "123" });
+ expect(cache.get("object")).toEqual({ hello: "123" });
});
it("returns undefined if no keys", () => {
const cache = new MemoryStorage();
- expect(cache.get("no-keys")).to.be.undefined;
+ expect(cache.get("no-keys")).toBeUndefined;
});
it("stored on shared memory", () => {
@@ -25,7 +24,7 @@ describe("background/infrastructures/memory-storage", () => {
cache = new MemoryStorage();
const got = cache.get("red");
- expect(got).to.equal("apple");
+ expect(got).toEqual("apple");
});
it("stored cloned objects", () => {
@@ -35,11 +34,11 @@ describe("background/infrastructures/memory-storage", () => {
recipe.salt = "20g";
const got = cache.get("recipe");
- expect(got).to.deep.equal({ sugar: "300g", salt: "10g" });
+ expect(got).toEqual({ sugar: "300g", salt: "10g" });
});
it("throws an error with unserializable objects", () => {
const cache = new MemoryStorage();
- expect(() => cache.set("fn", setTimeout)).to.throw();
+ expect(() => cache.set("fn", setTimeout)).toThrow();
});
});
diff --git a/test/background/mock/MockFramePresenter.ts b/test/background/mock/MockFramePresenter.ts
deleted file mode 100644
index d688780..0000000
--- a/test/background/mock/MockFramePresenter.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import FramePresenter from "../../../src/background/presenters/FramePresenter";
-
-export default class MockFramePresenter implements FramePresenter {
- getAllFrameIds(): Promise<number[]> {
- throw new Error("not implemented");
- }
-}
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/CloseTabOperator.test.ts b/test/background/operators/impls/CloseTabOperator.test.ts
index ba9cbfe..f72e118 100644
--- a/test/background/operators/impls/CloseTabOperator.test.ts
+++ b/test/background/operators/impls/CloseTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import CloseTabOperator from "../../../../src/background/operators/impls/CloseTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -14,7 +13,7 @@ describe("CloseTabOperator", () => {
await sut.run();
const tabs = await tabPresenter.getAll();
- expect(tabs.map((t) => t.url)).to.deep.equal([
+ expect(tabs.map((t) => t.url)).toEqual([
"https://example.com/1",
"https://example.com/3",
]);
@@ -39,7 +38,7 @@ describe("CloseTabOperator", () => {
await sut.run();
const tabs = await tabPresenter.getAll();
- expect(tabs.map((t) => t.url)).to.deep.equal([
+ expect(tabs.map((t) => t.url)).toEqual([
"https://example.com/1",
"https://example.com/3",
]);
@@ -55,7 +54,7 @@ describe("CloseTabOperator", () => {
await sut.run();
const tab = await tabPresenter.getCurrent();
- expect(tab.url).to.equal("https://example.com/1");
+ expect(tab.url).toEqual("https://example.com/1");
});
});
});
diff --git a/test/background/operators/impls/CloseTabRightOperator.test.ts b/test/background/operators/impls/CloseTabRightOperator.test.ts
index c2a106c..8e2200e 100644
--- a/test/background/operators/impls/CloseTabRightOperator.test.ts
+++ b/test/background/operators/impls/CloseTabRightOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import MockTabPresenter from "../../mock/MockTabPresenter";
import CloseTabRightOperator from "../../../../src/background/operators/impls/CloseTabRightOperator";
@@ -15,7 +14,7 @@ describe("CloseTabRightOperator", () => {
await sut.run();
const tabs = await tabPresenter.getAll();
- expect(tabs.map((t) => t.url)).to.deep.equal([
+ expect(tabs.map((t) => t.url)).toEqual([
"https://example.com/1",
"https://example.com/2",
]);
diff --git a/test/background/operators/impls/CommandOperatorFactoryChain.test.ts b/test/background/operators/impls/CommandOperatorFactoryChain.test.ts
index e481c5a..ce8676a 100644
--- a/test/background/operators/impls/CommandOperatorFactoryChain.test.ts
+++ b/test/background/operators/impls/CommandOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import CommandOperatorFactoryChain from "../../../../src/background/operators/impls/CommandOperatorFactoryChain";
import MockTabPresenter from "../../mock/MockTabPresenter";
import MockConsoleClient from "../../mock/MockConsoleClient";
@@ -18,25 +17,25 @@ describe("CommandOperatorFactoryChain", () => {
const consoleClient = new MockConsoleClient();
const sut = new CommandOperatorFactoryChain(tabPresenter, consoleClient);
- expect(sut.create({ type: operations.COMMAND_SHOW })).to.be.instanceOf(
+ expect(sut.create({ type: operations.COMMAND_SHOW })).toBeInstanceOf(
ShowCommandOperator
);
expect(
sut.create({ type: operations.COMMAND_SHOW_TABOPEN, alter: true })
- ).to.be.instanceOf(ShowTabOpenCommandOperator);
+ ).toBeInstanceOf(ShowTabOpenCommandOperator);
expect(
sut.create({ type: operations.COMMAND_SHOW_WINOPEN, alter: true })
- ).to.be.instanceOf(ShowWinOpenCommandOperator);
+ ).toBeInstanceOf(ShowWinOpenCommandOperator);
expect(
sut.create({ type: operations.COMMAND_SHOW_BUFFER })
- ).to.be.instanceOf(ShowBufferCommandOperator);
+ ).toBeInstanceOf(ShowBufferCommandOperator);
expect(
sut.create({ type: operations.COMMAND_SHOW_ADDBOOKMARK, alter: true })
- ).to.be.instanceOf(ShowAddBookmarkOperator);
- expect(sut.create({ type: operations.FIND_START })).to.be.instanceOf(
+ ).toBeInstanceOf(ShowAddBookmarkOperator);
+ expect(sut.create({ type: operations.FIND_START })).toBeInstanceOf(
StartFindOperator
);
- expect(sut.create({ type: operations.CANCEL })).to.be.null;
+ expect(sut.create({ type: operations.CANCEL })).toBeNull;
});
});
});
diff --git a/test/background/operators/impls/DuplicateTabOperator.test.ts b/test/background/operators/impls/DuplicateTabOperator.test.ts
index ce2c19d..cbc9e81 100644
--- a/test/background/operators/impls/DuplicateTabOperator.test.ts
+++ b/test/background/operators/impls/DuplicateTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import DuplicateTabOperator from "../../../../src/background/operators/impls/DuplicateTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -14,7 +13,7 @@ describe("DuplicateTabOperator", () => {
await sut.run();
const tabs = await tabPresenter.getAll();
- expect(tabs.map((t) => t.url)).to.deep.equal([
+ expect(tabs.map((t) => t.url)).toEqual([
"https://example.com/1",
"https://example.com/2",
"https://example.com/3",
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/FindOperatorFactoryChain.ts b/test/background/operators/impls/FindOperatorFactoryChain.ts
index 0fd234f..6b190ed 100644
--- a/test/background/operators/impls/FindOperatorFactoryChain.ts
+++ b/test/background/operators/impls/FindOperatorFactoryChain.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import TabOperatorFactoryChain from "../../../../src/background/operators/impls/TabOperatorFactoryChain";
import MockTabPresenter from "../../mock/MockTabPresenter";
import * as operations from "../../../../src/shared/operations";
@@ -12,10 +11,10 @@ describe("FindOperatorFactoryChain", () => {
const tabPresenter = new MockTabPresenter();
const sut = new TabOperatorFactoryChain(tabPresenter);
- expect(sut.create({ type: operations.FIND_NEXT })).to.be.instanceOf(
+ expect(sut.create({ type: operations.FIND_NEXT })).toBeInstanceOf(
FindNextOperator
);
- expect(sut.create({ type: operations.FIND_PREV })).to.be.instanceOf(
+ expect(sut.create({ type: operations.FIND_PREV })).toBeInstanceOf(
FindPrevOperator
);
});
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/InternalOpenURLOperator.test.ts b/test/background/operators/impls/InternalOpenURLOperator.test.ts
deleted file mode 100644
index e69de29..0000000
--- a/test/background/operators/impls/InternalOpenURLOperator.test.ts
+++ /dev/null
diff --git a/test/background/operators/impls/InternalOperatorFactoryChain.test.ts b/test/background/operators/impls/InternalOperatorFactoryChain.test.ts
index 09029db..c13ebaf 100644
--- a/test/background/operators/impls/InternalOperatorFactoryChain.test.ts
+++ b/test/background/operators/impls/InternalOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import InternalOperatorFactoryChain from "../../../../src/background/operators/impls/InternalOperatorFactoryChain";
import MockWindowPresenter from "../../mock/MockWindowPresenter";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -20,7 +19,7 @@ describe("InternalOperatorFactoryChain", () => {
consoleClient
);
- expect(sut.create({ type: operations.CANCEL })).to.be.instanceOf(
+ expect(sut.create({ type: operations.CANCEL })).toBeInstanceOf(
CancelOperator
);
expect(
@@ -30,8 +29,8 @@ describe("InternalOperatorFactoryChain", () => {
newTab: false,
newWindow: false,
})
- ).to.be.instanceOf(InternalOpenURLOperator);
- expect(sut.create({ type: operations.COMMAND_SHOW })).to.be.null;
+ ).toBeInstanceOf(InternalOpenURLOperator);
+ expect(sut.create({ type: operations.COMMAND_SHOW })).toBeNull;
});
});
});
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/NavigateOperatorFactoryChain.test.ts b/test/background/operators/impls/NavigateOperatorFactoryChain.test.ts
index dfb5654..ae556f0 100644
--- a/test/background/operators/impls/NavigateOperatorFactoryChain.test.ts
+++ b/test/background/operators/impls/NavigateOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import NavigateOperatorFactoryChain from "../../../../src/background/operators/impls/NavigateOperatorFactoryChain";
import MockTabPresenter from "../../mock/MockTabPresenter";
import MockNavigateClient from "../../mock/MockNavigateClient";
@@ -28,29 +27,29 @@ describe("NavigateOperatorFactoryChain", () => {
expect(
sut.create({ type: operations.NAVIGATE_HISTORY_PREV })
- ).to.be.instanceOf(NavigateHistoryPrevOperator);
+ ).toBeInstanceOf(NavigateHistoryPrevOperator);
expect(
sut.create({ type: operations.NAVIGATE_HISTORY_NEXT })
- ).to.be.instanceOf(NavigateHistoryNextOperator);
+ ).toBeInstanceOf(NavigateHistoryNextOperator);
expect(
sut.create({ type: operations.NAVIGATE_LINK_PREV })
- ).to.be.instanceOf(NavigateLinkPrevOperator);
+ ).toBeInstanceOf(NavigateLinkPrevOperator);
expect(
sut.create({ type: operations.NAVIGATE_LINK_NEXT })
- ).to.be.instanceOf(NavigateLinkNextOperator);
- expect(sut.create({ type: operations.NAVIGATE_PARENT })).to.be.instanceOf(
+ ).toBeInstanceOf(NavigateLinkNextOperator);
+ expect(sut.create({ type: operations.NAVIGATE_PARENT })).toBeInstanceOf(
NavigateParentOperator
);
- expect(sut.create({ type: operations.NAVIGATE_ROOT })).to.be.instanceOf(
+ expect(sut.create({ type: operations.NAVIGATE_ROOT })).toBeInstanceOf(
NavigateRootOperator
);
- expect(sut.create({ type: operations.PAGE_SOURCE })).to.be.instanceOf(
+ expect(sut.create({ type: operations.PAGE_SOURCE })).toBeInstanceOf(
OpenSourceOperator
);
expect(
sut.create({ type: operations.PAGE_HOME, newTab: false })
- ).to.be.instanceOf(OpenHomeOperator);
- expect(sut.create({ type: operations.CANCEL })).to.be.null;
+ ).toBeInstanceOf(OpenHomeOperator);
+ expect(sut.create({ type: operations.CANCEL })).toBeNull;
});
});
});
diff --git a/test/background/operators/impls/NavigateParentOperator.test.ts b/test/background/operators/impls/NavigateParentOperator.test.ts
index cc57f17..48c14dd 100644
--- a/test/background/operators/impls/NavigateParentOperator.test.ts
+++ b/test/background/operators/impls/NavigateParentOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import MockTabPresenter from "../../mock/MockTabPresenter";
import NavigateParentOperator from "../../../../src/background/operators/impls/NavigateParentOperator";
@@ -14,7 +13,7 @@ describe("NavigateParentOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.be.equal("https://example.com/fruits/yellow/");
+ expect(url).toEqual("https://example.com/fruits/yellow/");
});
it("opens a parent directory of the directoryin the URL", async () => {
@@ -25,7 +24,7 @@ describe("NavigateParentOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.be.equal("https://example.com/fruits/");
+ expect(url).toEqual("https://example.com/fruits/");
});
it("removes a hash in the URL", async () => {
@@ -36,7 +35,7 @@ describe("NavigateParentOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.be.equal("https://example.com/fruits/yellow/");
+ expect(url).toEqual("https://example.com/fruits/yellow/");
});
it("removes query parameters in the URL", async () => {
@@ -47,7 +46,7 @@ describe("NavigateParentOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.be.equal("https://example.com/search");
+ expect(url).toEqual("https://example.com/search");
});
});
});
diff --git a/test/background/operators/impls/NavigateRootOperator.test.ts b/test/background/operators/impls/NavigateRootOperator.test.ts
index bbe574c..379ce44 100644
--- a/test/background/operators/impls/NavigateRootOperator.test.ts
+++ b/test/background/operators/impls/NavigateRootOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import NavigateRootOperator from "../../../../src/background/operators/impls/NavigateRootOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -12,7 +11,7 @@ describe("NavigateRootOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.be.equal("https://example.com");
+ expect(url).toEqual("https://example.com");
});
});
});
diff --git a/test/background/operators/impls/OpenHomeOperator.test.ts b/test/background/operators/impls/OpenHomeOperator.test.ts
index 3c9288f..580aa49 100644
--- a/test/background/operators/impls/OpenHomeOperator.test.ts
+++ b/test/background/operators/impls/OpenHomeOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import OpenHomeOperator from "../../../../src/background/operators/impls/OpenHomeOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
import MockBrowserSettingRepository from "../../mock/MockBrowserSettingRepository";
@@ -20,7 +19,7 @@ describe("OpenHomeOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.be.equal("https://example.net/");
+ expect(url).toEqual("https://example.net/");
});
it("opens a home page of the browser into a new tab", async () => {
@@ -38,10 +37,7 @@ describe("OpenHomeOperator", () => {
await sut.run();
const urls = (await tabPresenter.getAll()).map((t) => t.url);
- expect(urls).to.be.deep.equal([
- "https://example.com/",
- "https://example.net/",
- ]);
+ expect(urls).toEqual(["https://example.com/", "https://example.net/"]);
});
it("opens home pages of the browser", async () => {
@@ -60,7 +56,7 @@ describe("OpenHomeOperator", () => {
await sut.run();
const urls = (await tabPresenter.getAll()).map((t) => t.url);
- expect(urls).to.be.deep.equal([
+ expect(urls).toEqual([
"https://example.com/",
"https://example.net/",
"https://example.org/",
diff --git a/test/background/operators/impls/OpenSourceOperator.test.ts b/test/background/operators/impls/OpenSourceOperator.test.ts
index 541032b..4d9423c 100644
--- a/test/background/operators/impls/OpenSourceOperator.test.ts
+++ b/test/background/operators/impls/OpenSourceOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import OpenSourceOperator from "../../../../src/background/operators/impls/OpenSourceOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -12,7 +11,7 @@ describe("OpenSourceOperator", () => {
await sut.run();
const urls = (await tabPresenter.getAll()).map((t) => t.url);
- expect(urls).to.be.deep.equal([
+ expect(urls).toEqual([
"https://example.com/",
"view-source:https://example.com/",
]);
diff --git a/test/background/operators/impls/PinTabOperator.test.ts b/test/background/operators/impls/PinTabOperator.test.ts
index 0c940b6..69082f2 100644
--- a/test/background/operators/impls/PinTabOperator.test.ts
+++ b/test/background/operators/impls/PinTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import PinTabOperator from "../../../../src/background/operators/impls/PinTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -19,7 +18,7 @@ describe("PinTabOperator", () => {
await sut.run();
const pins = (await tabPresenter.getAll()).map((t) => t.pinned);
- expect(pins).to.deep.equal([true, false]);
+ expect(pins).toEqual([true, false]);
});
});
});
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/RepeatOperatorFactoryChain.test.ts b/test/background/operators/impls/RepeatOperatorFactoryChain.test.ts
index e12d788..ec5e000 100644
--- a/test/background/operators/impls/RepeatOperatorFactoryChain.test.ts
+++ b/test/background/operators/impls/RepeatOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import RepeatOperatorFactoryChain from "../../../../src/background/operators/impls/RepeatOperatorFactoryChain";
import RepeatLastOperator from "../../../../src/background/operators/impls/RepeatLastOperator";
import OperatorFactory from "../../../../src/background/operators/OperatorFactory";
@@ -23,10 +22,10 @@ describe("RepeatOperatorFactoryChain", () => {
operatorFactory
);
- expect(sut.create({ type: operations.REPEAT_LAST })).to.be.instanceOf(
+ expect(sut.create({ type: operations.REPEAT_LAST })).toBeInstanceOf(
RepeatLastOperator
);
- expect(sut.create({ type: operations.CANCEL })).to.be.null;
+ expect(sut.create({ type: operations.CANCEL })).toBeNull;
});
});
});
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/SelectFirstTabOperator.test.ts b/test/background/operators/impls/SelectFirstTabOperator.test.ts
index a3f1d7e..ae8a42e 100644
--- a/test/background/operators/impls/SelectFirstTabOperator.test.ts
+++ b/test/background/operators/impls/SelectFirstTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import SelectFirstTabOperator from "../../../../src/background/operators/impls/SelectFirstTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -14,7 +13,7 @@ describe("SelectFirstTabOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/1");
+ expect(url).toEqual("https://example.com/1");
});
});
});
diff --git a/test/background/operators/impls/SelectLastTabOperator.test.ts b/test/background/operators/impls/SelectLastTabOperator.test.ts
index b8cf5c4..63668b1 100644
--- a/test/background/operators/impls/SelectLastTabOperator.test.ts
+++ b/test/background/operators/impls/SelectLastTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import SelectLastTabOperator from "../../../../src/background/operators/impls/SelectLastTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -14,7 +13,7 @@ describe("SelectLastTabOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/3");
+ expect(url).toEqual("https://example.com/3");
});
});
});
diff --git a/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts b/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts
index 5e6cc73..7872b2f 100644
--- a/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts
+++ b/test/background/operators/impls/SelectPreviousSelectedTabOperator.test.ts
@@ -1,5 +1,3 @@
-import { expect } from "chai";
-import sinon from "sinon";
import MockTabPresenter from "../../mock/MockTabPresenter";
import SelectPreviousSelectedTabOperator from "../../../../src/background/operators/impls/SelectPreviousSelectedTabOperator";
@@ -10,13 +8,13 @@ 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();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/1");
+ expect(url).toEqual("https://example.com/1");
});
it("do nothing if no last-selected tabs", async () => {
@@ -24,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/SelectTabNextOperator.test.ts b/test/background/operators/impls/SelectTabNextOperator.test.ts
index 5952d92..cc845e5 100644
--- a/test/background/operators/impls/SelectTabNextOperator.test.ts
+++ b/test/background/operators/impls/SelectTabNextOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import MockTabPresenter from "../../mock/MockTabPresenter";
import SelectTabNextOperator from "../../../../src/background/operators/impls/SelectTabNextOperator";
@@ -14,7 +13,7 @@ describe("SelectTabNextOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/3");
+ expect(url).toEqual("https://example.com/3");
});
});
@@ -29,7 +28,7 @@ describe("SelectTabNextOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/1");
+ expect(url).toEqual("https://example.com/1");
});
});
});
diff --git a/test/background/operators/impls/SelectTabPrevOperator.test.ts b/test/background/operators/impls/SelectTabPrevOperator.test.ts
index c9092fa..41df299 100644
--- a/test/background/operators/impls/SelectTabPrevOperator.test.ts
+++ b/test/background/operators/impls/SelectTabPrevOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import MockTabPresenter from "../../mock/MockTabPresenter";
import SelectTabPrevOperator from "../../../../src/background/operators/impls/SelectTabPrevOperator";
@@ -14,7 +13,7 @@ describe("SelectTabPrevOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/1");
+ expect(url).toEqual("https://example.com/1");
});
});
@@ -29,7 +28,7 @@ describe("SelectTabPrevOperator", () => {
await sut.run();
const url = (await tabPresenter.getCurrent()).url;
- expect(url).to.equal("https://example.com/3");
+ expect(url).toEqual("https://example.com/3");
});
});
});
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/TabOperatorFactoryChain.test.ts b/test/background/operators/impls/TabOperatorFactoryChain.test.ts
index a777973..57e6321 100644
--- a/test/background/operators/impls/TabOperatorFactoryChain.test.ts
+++ b/test/background/operators/impls/TabOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import TabOperatorFactoryChain from "../../../../src/background/operators/impls/TabOperatorFactoryChain";
import MockTabPresenter from "../../mock/MockTabPresenter";
import DuplicateTabOperator from "../../../../src/background/operators/impls/DuplicateTabOperator";
@@ -23,49 +22,49 @@ describe("TabOperatorFactoryChain", () => {
const tabPresenter = new MockTabPresenter();
const sut = new TabOperatorFactoryChain(tabPresenter);
- expect(sut.create({ type: operations.TAB_CLOSE })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_CLOSE })).toBeInstanceOf(
CloseTabOperator
);
- expect(sut.create({ type: operations.TAB_CLOSE_RIGHT })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_CLOSE_RIGHT })).toBeInstanceOf(
CloseTabRightOperator
);
- expect(sut.create({ type: operations.TAB_CLOSE_FORCE })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_CLOSE_FORCE })).toBeInstanceOf(
CloseTabOperator
);
- expect(sut.create({ type: operations.TAB_REOPEN })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_REOPEN })).toBeInstanceOf(
ReopenTabOperator
);
- expect(sut.create({ type: operations.TAB_PREV })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_PREV })).toBeInstanceOf(
SelectTabPrevOperator
);
- expect(sut.create({ type: operations.TAB_NEXT })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_NEXT })).toBeInstanceOf(
SelectTabNextOperator
);
- expect(sut.create({ type: operations.TAB_FIRST })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_FIRST })).toBeInstanceOf(
SelectFirstTabOperator
);
- expect(sut.create({ type: operations.TAB_LAST })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_LAST })).toBeInstanceOf(
SelectLastTabOperator
);
- expect(sut.create({ type: operations.TAB_PREV_SEL })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_PREV_SEL })).toBeInstanceOf(
SelectPreviousSelectedTabOperator
);
expect(
sut.create({ type: operations.TAB_RELOAD, cache: false })
- ).to.be.instanceOf(ReloadTabOperator);
- expect(sut.create({ type: operations.TAB_PIN })).to.be.instanceOf(
+ ).toBeInstanceOf(ReloadTabOperator);
+ expect(sut.create({ type: operations.TAB_PIN })).toBeInstanceOf(
PinTabOperator
);
- expect(sut.create({ type: operations.TAB_UNPIN })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_UNPIN })).toBeInstanceOf(
UnpinTabOperator
);
- expect(
- sut.create({ type: operations.TAB_TOGGLE_PINNED })
- ).to.be.instanceOf(TogglePinnedTabOperator);
- expect(sut.create({ type: operations.TAB_DUPLICATE })).to.be.instanceOf(
+ expect(sut.create({ type: operations.TAB_TOGGLE_PINNED })).toBeInstanceOf(
+ TogglePinnedTabOperator
+ );
+ expect(sut.create({ type: operations.TAB_DUPLICATE })).toBeInstanceOf(
DuplicateTabOperator
);
- expect(sut.create({ type: operations.CANCEL })).to.be.null;
+ expect(sut.create({ type: operations.CANCEL })).toBeNull;
});
});
});
diff --git a/test/background/operators/impls/TogglePinnedTabOperator.test.ts b/test/background/operators/impls/TogglePinnedTabOperator.test.ts
index f155f83..fbd6c39 100644
--- a/test/background/operators/impls/TogglePinnedTabOperator.test.ts
+++ b/test/background/operators/impls/TogglePinnedTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import TogglePinnedTabOperator from "../../../../src/background/operators/impls/TogglePinnedTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -17,13 +16,13 @@ describe("TogglePinnedTabOperator", () => {
const sut = new TogglePinnedTabOperator(tabPresenter);
await sut.run();
- expect((await tabPresenter.getAll()).map((t) => t.pinned)).to.deep.equal([
+ expect((await tabPresenter.getAll()).map((t) => t.pinned)).toEqual([
true,
false,
]);
await sut.run();
- expect((await tabPresenter.getAll()).map((t) => t.pinned)).to.deep.equal([
+ expect((await tabPresenter.getAll()).map((t) => t.pinned)).toEqual([
false,
false,
]);
diff --git a/test/background/operators/impls/UnpinTabOperator.test.ts b/test/background/operators/impls/UnpinTabOperator.test.ts
index 745f48c..c30c94f 100644
--- a/test/background/operators/impls/UnpinTabOperator.test.ts
+++ b/test/background/operators/impls/UnpinTabOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import UnpinTabOperator from "../../../../src/background/operators/impls/UnpinTabOperator";
import MockTabPresenter from "../../mock/MockTabPresenter";
@@ -19,7 +18,7 @@ describe("UnpinTabOperator", () => {
await sut.run();
const pins = (await tabPresenter.getAll()).map((t) => t.pinned);
- expect(pins).to.deep.equal([false, true]);
+ expect(pins).toEqual([false, true]);
});
});
});
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/ZoomOperatorFactoryChain.test.ts b/test/background/operators/impls/ZoomOperatorFactoryChain.test.ts
index 10c1cee..ab40a86 100644
--- a/test/background/operators/impls/ZoomOperatorFactoryChain.test.ts
+++ b/test/background/operators/impls/ZoomOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import "reflect-metadata";
-import { expect } from "chai";
import ZoomOperatorFactoryChain from "../../../../src/background/operators/impls/ZoomOperatorFactoryChain";
import MockZoomPresenter from "../../mock/MockZoomPresenter";
import ZoomInOperator from "../../../../src/background/operators/impls/ZoomInOperator";
@@ -13,16 +12,16 @@ describe("ZoomOperatorFactoryChain", () => {
const zoomPresenter = new MockZoomPresenter();
const sut = new ZoomOperatorFactoryChain(zoomPresenter);
- expect(sut.create({ type: operations.ZOOM_IN })).to.be.instanceOf(
+ expect(sut.create({ type: operations.ZOOM_IN })).toBeInstanceOf(
ZoomInOperator
);
- expect(sut.create({ type: operations.ZOOM_OUT })).to.be.instanceOf(
+ expect(sut.create({ type: operations.ZOOM_OUT })).toBeInstanceOf(
ZoomOutOperator
);
- expect(sut.create({ type: operations.ZOOM_NEUTRAL })).to.be.instanceOf(
+ expect(sut.create({ type: operations.ZOOM_NEUTRAL })).toBeInstanceOf(
ResetZoomOperator
);
- expect(sut.create({ type: operations.CANCEL })).to.be.null;
+ expect(sut.create({ type: operations.CANCEL })).toBeNull;
});
});
});
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();
});
});
});
diff --git a/test/background/repositories/FindRepository.test.ts b/test/background/repositories/FindRepository.test.ts
index d8c9506..88d5e71 100644
--- a/test/background/repositories/FindRepository.test.ts
+++ b/test/background/repositories/FindRepository.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import { FindRepositoryImpl } from "../../../src/background/repositories/FindRepository";
describe("background/repositories/FindRepositoryImpl", () => {
@@ -10,18 +9,18 @@ describe("background/repositories/FindRepositoryImpl", () => {
describe("global keyword", () => {
it("get and set a keyword", async () => {
- expect(await sut.getGlobalKeyword()).to.be.undefined;
+ expect(await sut.getGlobalKeyword()).toBeUndefined;
await sut.setGlobalKeyword("Hello, world");
const keyword = await sut.getGlobalKeyword();
- expect(keyword).to.equal("Hello, world");
+ expect(keyword).toEqual("Hello, world");
});
});
describe("local state", () => {
it("get and set a keyword", async () => {
- expect(await sut.getLocalState(10)).to.be.undefined;
+ expect(await sut.getLocalState(10)).toBeUndefined;
await sut.setLocalState(10, {
keyword: "Hello, world",
@@ -29,10 +28,10 @@ describe("background/repositories/FindRepositoryImpl", () => {
});
const state = await sut.getLocalState(10);
- expect(state?.keyword).to.equal("Hello, world");
- expect(state?.frameId).to.equal(11);
+ expect(state?.keyword).toEqual("Hello, world");
+ expect(state?.frameId).toEqual(11);
- expect(await sut.getLocalState(20)).to.be.undefined;
+ expect(await sut.getLocalState(20)).toBeUndefined;
});
});
});
diff --git a/test/background/repositories/Mark.test.ts b/test/background/repositories/Mark.test.ts
index 3b054e5..bdee3b7 100644
--- a/test/background/repositories/Mark.test.ts
+++ b/test/background/repositories/Mark.test.ts
@@ -1,5 +1,4 @@
import MarkRepository from "../../../src/background/repositories/MarkRepository";
-import { expect } from "chai";
describe("background/repositories/mark", () => {
let repository: MarkRepository;
@@ -14,12 +13,12 @@ describe("background/repositories/mark", () => {
await repository.setMark("A", mark);
let got = (await repository.getMark("A"))!;
- expect(got.tabId).to.equal(1);
- expect(got.url).to.equal("http://example.com");
- expect(got.x).to.equal(10);
- expect(got.y).to.equal(30);
+ expect(got.tabId).toEqual(1);
+ expect(got.url).toEqual("http://example.com");
+ expect(got.x).toEqual(10);
+ expect(got.y).toEqual(30);
got = (await repository.getMark("B"))!;
- expect(got).to.be.undefined;
+ expect(got).toBeUndefined;
});
});
diff --git a/test/background/repositories/ReadyFrameRepository.test.ts b/test/background/repositories/ReadyFrameRepository.test.ts
index 71f20af..fb4d34a 100644
--- a/test/background/repositories/ReadyFrameRepository.test.ts
+++ b/test/background/repositories/ReadyFrameRepository.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import { ReadyFrameRepositoryImpl } from "../../../src/background/repositories/ReadyFrameRepository";
describe("background/repositories/ReadyFrameRepositoryImpl", () => {
@@ -9,7 +8,7 @@ describe("background/repositories/ReadyFrameRepositoryImpl", () => {
});
it("get and set a keyword", async () => {
- expect(await sut.getFrameIds(1)).to.be.undefined;
+ expect(await sut.getFrameIds(1)).toBeUndefined;
await sut.addFrameId(1, 10);
await sut.addFrameId(1, 12);
@@ -18,16 +17,16 @@ describe("background/repositories/ReadyFrameRepositoryImpl", () => {
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]);
+ expect(await sut.getFrameIds(1)).toEqual([10, 11, 12]);
+ expect(await sut.getFrameIds(2)).toEqual([20, 21]);
await sut.removeFrameId(2, 21);
- expect(await sut.getFrameIds(2)).to.deep.equal([20, 21]);
+ expect(await sut.getFrameIds(2)).toEqual([20, 21]);
await sut.removeFrameId(2, 21);
- expect(await sut.getFrameIds(2)).to.deep.equal([20]);
+ expect(await sut.getFrameIds(2)).toEqual([20]);
await sut.removeFrameId(2, 20);
- expect(await sut.getFrameIds(2)).to.be.undefined;
+ expect(await sut.getFrameIds(2)).toBeUndefined;
});
});
diff --git a/test/background/usecases/SettingUseCase.test.ts b/test/background/usecases/SettingUseCase.test.ts
index 8a4c2b2..395e8a4 100644
--- a/test/background/usecases/SettingUseCase.test.ts
+++ b/test/background/usecases/SettingUseCase.test.ts
@@ -7,9 +7,7 @@ import Settings, {
DefaultSetting,
} from "../../../src/shared/settings/Settings";
import Notifier from "../../../src/background/presenters/Notifier";
-import { expect } from "chai";
import Properties from "../../../src/shared/settings/Properties";
-import sinon from "sinon";
class MockSettingRepository implements SettingRepository {
load(): Promise<SettingData | null> {
@@ -77,17 +75,15 @@ describe("SettingUseCase", () => {
hintchars: "abcd1234",
}),
});
- sinon
- .stub(cachedSettingRepository, "get")
- .returns(Promise.resolve(settings));
+ jest.spyOn(cachedSettingRepository, "get").mockResolvedValue(settings);
const got = await sut.getCached();
- expect(got.properties.hintchars).to.equal("abcd1234");
+ expect(got.properties.hintchars).toEqual("abcd1234");
});
});
describe("reload", () => {
- context("when sync is not set", () => {
+ describe("when sync is not set", () => {
it("loads settings from local storage", async () => {
const settings = new Settings({
keymaps: DefaultSetting.keymaps,
@@ -102,21 +98,19 @@ describe("SettingUseCase", () => {
json: JSONTextSettings.fromSettings(settings).toJSONText(),
});
- sinon
- .stub(syncSettingRepository, "load")
- .returns(Promise.resolve(null));
- sinon
- .stub(localSettingRepository, "load")
- .returns(Promise.resolve(settingData));
+ jest.spyOn(syncSettingRepository, "load").mockResolvedValue(null);
+ jest
+ .spyOn(localSettingRepository, "load")
+ .mockResolvedValue(settingData);
await sut.reload();
const current = await cachedSettingRepository.get();
- expect(current.properties.hintchars).to.equal("abcd1234");
+ expect(current.properties.hintchars).toEqual("abcd1234");
});
});
- context("when local is not set", () => {
+ describe("when local is not set", () => {
it("loads settings from sync storage", async () => {
const settings = new Settings({
keymaps: DefaultSetting.keymaps,
@@ -131,37 +125,29 @@ describe("SettingUseCase", () => {
json: JSONTextSettings.fromSettings(settings).toJSONText(),
});
- sinon
- .stub(syncSettingRepository, "load")
- .returns(Promise.resolve(settingData));
- sinon
- .stub(localSettingRepository, "load")
- .returns(Promise.resolve(null));
+ jest
+ .spyOn(syncSettingRepository, "load")
+ .mockResolvedValue(settingData);
+ jest.spyOn(localSettingRepository, "load").mockResolvedValue(null);
await sut.reload();
const current = await cachedSettingRepository.get();
- expect(current.properties.hintchars).to.equal("aaaa1111");
+ expect(current.properties.hintchars).toEqual("aaaa1111");
});
});
- context("neither local nor sync not set", () => {
- it("loads default settings", async () => {
- it("loads settings from sync storage", async () => {
- sinon
- .stub(syncSettingRepository, "load")
- .returns(Promise.resolve(null));
- sinon
- .stub(localSettingRepository, "load")
- .returns(Promise.resolve(null));
-
- await sut.reload();
-
- const current = await cachedSettingRepository.get();
- expect(current.properties.hintchars).to.equal(
- DefaultSetting.properties.hintchars
- );
- });
+ describe("neither local nor sync not set", () => {
+ it("loads settings from sync storage", async () => {
+ jest.spyOn(syncSettingRepository, "load").mockResolvedValue(null);
+ jest.spyOn(localSettingRepository, "load").mockResolvedValue(null);
+
+ await sut.reload();
+
+ const current = await cachedSettingRepository.get();
+ expect(current.properties.hintchars).toEqual(
+ DefaultSetting.properties.hintchars
+ );
});
});
});
diff --git a/test/background/usecases/StartFindUseCase.test.ts b/test/background/usecases/StartFindUseCase.test.ts
index 24e1fdc..0bfe18a 100644
--- a/test/background/usecases/StartFindUseCase.test.ts
+++ b/test/background/usecases/StartFindUseCase.test.ts
@@ -1,4 +1,3 @@
-import * as sinon from "sinon";
import MockFindClient from "../mock/MockFindClient";
import MockFindRepository from "../mock/MockFindRepository";
import MockConsoleClient from "../mock/MockConsoleClient";
@@ -21,160 +20,144 @@ describe("StartFindUseCase", () => {
frameRepository
);
- beforeEach(async () => {
- sinon.restore();
+ const getFrameIdsSpy = jest
+ .spyOn(frameRepository, "getFrameIds")
+ .mockResolvedValue(frameIds);
+ const clearSelectionSpy = jest
+ .spyOn(findClient, "clearSelection")
+ .mockReturnValue(Promise.resolve());
+ const findNextSpy = jest.spyOn(findClient, "findNext");
+ const setLocalStateSpy = jest
+ .spyOn(findRepository, "setLocalState")
+ .mockReturnValue(Promise.resolve());
- sinon
- .stub(frameRepository, "getFrameIds")
- .returns(Promise.resolve(frameIds));
+ beforeEach(async () => {
+ getFrameIdsSpy.mockClear();
+ clearSelectionSpy.mockClear();
+ findNextSpy.mockClear();
+ setLocalStateSpy.mockClear();
});
describe("startFind", () => {
it("starts a find with a keyword", async () => {
- 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(false));
- mockFindClient
- .expects("findNext")
- .withArgs(currentTabId, 100, keyword)
- .returns(Promise.resolve(true));
- const mockFindRepository = sinon.mock(findRepository);
- mockFindRepository
- .expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameId: 100 });
- const mockConsoleClient = sinon.mock(consoleClient);
- mockConsoleClient
- .expects("showInfo")
- .withArgs(currentTabId, "Pattern found: " + keyword);
+ findNextSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true);
+ const showInfoSpy = jest
+ .spyOn(consoleClient, "showInfo")
+ .mockReturnValue(Promise.resolve());
await sut.startFind(currentTabId, keyword);
- mockFindClient.verify();
- mockFindRepository.verify();
- mockConsoleClient.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).toBeCalledTimes(2);
+ expect(findNextSpy.mock.calls[0][1]).toEqual(0);
+ expect(findNextSpy.mock.calls[1][1]).toEqual(100);
+ expect(setLocalStateSpy).toBeCalledWith(currentTabId, {
+ keyword,
+ frameId: 100,
+ });
+ expect(showInfoSpy).toBeCalledWith(
+ currentTabId,
+ "Pattern found: " + keyword
+ );
});
it("starts a find with last local state", async () => {
- 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(false));
- mockFindClient
- .expects("findNext")
- .withArgs(currentTabId, 100, keyword)
- .returns(Promise.resolve(true));
- const mockFindRepository = sinon.mock(findRepository);
- mockFindRepository
- .expects("getLocalState")
- .withArgs(currentTabId)
- .returns(Promise.resolve({ keyword, frameId: 0 }));
- mockFindRepository
- .expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameId: 100 });
- const mockConsoleClient = sinon.mock(consoleClient);
- mockConsoleClient
- .expects("showInfo")
- .withArgs(currentTabId, "Pattern found: " + keyword);
+ findNextSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true);
+ const getLocalStateSpy = jest
+ .spyOn(findRepository, "getLocalState")
+ .mockResolvedValue({ keyword, frameId: 0 });
+ const showInfoSpy = jest
+ .spyOn(consoleClient, "showInfo")
+ .mockReturnValue(Promise.resolve());
await sut.startFind(currentTabId, undefined);
- mockFindClient.verify();
- mockFindRepository.verify();
- mockConsoleClient.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).toBeCalledTimes(2);
+ expect(findNextSpy.mock.calls[0][1]).toEqual(0);
+ expect(findNextSpy.mock.calls[1][1]).toEqual(100);
+ expect(getLocalStateSpy).toBeCalledWith(currentTabId);
+ expect(setLocalStateSpy).toBeCalledWith(currentTabId, {
+ keyword,
+ frameId: 100,
+ });
+ expect(showInfoSpy).toBeCalledWith(
+ currentTabId,
+ "Pattern found: " + keyword
+ );
});
it("starts a find with last global state", async () => {
- 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(false));
- mockFindClient
- .expects("findNext")
- .withArgs(currentTabId, 100, keyword)
- .returns(Promise.resolve(true));
- const mockFindRepository = sinon.mock(findRepository);
- mockFindRepository
- .expects("getLocalState")
- .withArgs(currentTabId)
- .returns(Promise.resolve(undefined));
- mockFindRepository
- .expects("getGlobalKeyword")
- .returns(Promise.resolve(keyword));
- mockFindRepository
- .expects("setLocalState")
- .withArgs(currentTabId, { keyword, frameId: 100 });
- const mockConsoleClient = sinon.mock(consoleClient);
- mockConsoleClient
- .expects("showInfo")
- .withArgs(currentTabId, "Pattern found: " + keyword);
+ findNextSpy.mockResolvedValueOnce(false).mockResolvedValueOnce(true);
+ const getLocalStateSpy = jest
+ .spyOn(findRepository, "getLocalState")
+ .mockResolvedValue(undefined);
+ jest.spyOn(findRepository, "getGlobalKeyword").mockResolvedValue(keyword);
+ const showInfoSpy = jest
+ .spyOn(consoleClient, "showInfo")
+ .mockReturnValue(Promise.resolve());
await sut.startFind(currentTabId, undefined);
- mockFindClient.verify();
- mockFindRepository.verify();
- mockConsoleClient.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).toBeCalledTimes(2);
+ expect(findNextSpy.mock.calls[0][1]).toEqual(0);
+ expect(findNextSpy.mock.calls[1][1]).toEqual(100);
+ expect(getLocalStateSpy).toBeCalledWith(currentTabId);
+ expect(setLocalStateSpy).toBeCalledWith(currentTabId, {
+ keyword,
+ frameId: 100,
+ });
+ expect(showInfoSpy).toBeCalledWith(
+ currentTabId,
+ "Pattern found: " + keyword
+ );
});
it("shows an error when pattern not found", async () => {
- 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(false));
- mockFindClient
- .expects("findNext")
- .withArgs(currentTabId, 100, keyword)
- .returns(Promise.resolve(false));
- mockFindClient
- .expects("findNext")
- .withArgs(currentTabId, 101, keyword)
- .returns(Promise.resolve(false));
- const mockFindRepository = sinon.mock(findRepository);
- mockFindRepository.expects("setLocalState").never();
- const mockConsoleClient = sinon.mock(consoleClient);
- mockConsoleClient
- .expects("showError")
- .withArgs(currentTabId, "Pattern not found: " + keyword);
+ findNextSpy.mockResolvedValue(false);
+ const showErrorSpy = jest
+ .spyOn(consoleClient, "showError")
+ .mockReturnValue(Promise.resolve());
await sut.startFind(currentTabId, keyword);
- mockFindClient.verify();
- mockFindRepository.verify();
- mockConsoleClient.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(setLocalStateSpy).not.toBeCalled();
+ expect(showErrorSpy).toBeCalledWith(
+ currentTabId,
+ "Pattern not found: " + keyword
+ );
});
it("shows an error when no last keywords", async () => {
- sinon
- .stub(findRepository, "getLocalState")
- .returns(Promise.resolve(undefined));
- sinon
- .stub(findRepository, "getGlobalKeyword")
- .returns(Promise.resolve(undefined));
-
- const mockConsoleClient = sinon.mock(consoleClient);
- mockConsoleClient
- .expects("showError")
- .withArgs(currentTabId, "No previous search keywords");
+ jest.spyOn(findRepository, "getLocalState").mockResolvedValue(undefined);
+ jest
+ .spyOn(findRepository, "getGlobalKeyword")
+ .mockResolvedValue(undefined);
+
+ const showErrorSpy = jest
+ .spyOn(consoleClient, "showError")
+ .mockReturnValue(Promise.resolve());
await sut.startFind(currentTabId, undefined);
- mockConsoleClient.verify();
+ expect(showErrorSpy).toBeCalledWith(
+ currentTabId,
+ "No previous search keywords"
+ );
});
});
});
diff --git a/test/background/usecases/parsers.test.ts b/test/background/usecases/parsers.test.ts
index 019b56e..db26b7a 100644
--- a/test/background/usecases/parsers.test.ts
+++ b/test/background/usecases/parsers.test.ts
@@ -1,42 +1,36 @@
import * as parsers from "../../../src/background/usecases/parsers";
-import { expect } from "chai";
describe("shared/commands/parsers", () => {
describe("#parsers.parseSetOption", () => {
it("parse set string", () => {
const [key, value] = parsers.parseSetOption("hintchars=abcdefgh");
- expect(key).to.equal("hintchars");
- expect(value).to.equal("abcdefgh");
+ expect(key).toEqual("hintchars");
+ expect(value).toEqual("abcdefgh");
});
it("parse set empty string", () => {
const [key, value] = parsers.parseSetOption("hintchars=");
- expect(key).to.equal("hintchars");
- expect(value).to.equal("");
+ expect(key).toEqual("hintchars");
+ expect(value).toEqual("");
});
it("parse set boolean", () => {
let [key, value] = parsers.parseSetOption("smoothscroll");
- expect(key).to.equal("smoothscroll");
- expect(value).to.be.true;
+ expect(key).toEqual("smoothscroll");
+ expect(value).toBeTruthy;
[key, value] = parsers.parseSetOption("nosmoothscroll");
- expect(key).to.equal("smoothscroll");
- expect(value).to.be.false;
+ expect(key).toEqual("smoothscroll");
+ expect(value).toBeFalsy;
});
it("throws error on unknown property", () => {
- expect(() => parsers.parseSetOption("encoding=utf-8")).to.throw(
- Error,
+ expect(() => parsers.parseSetOption("encoding=utf-8")).toThrowError(
"Unknown"
);
- expect(() => parsers.parseSetOption("paste")).to.throw(Error, "Unknown");
- expect(() => parsers.parseSetOption("nopaste")).to.throw(
- Error,
- "Unknown"
- );
- expect(() => parsers.parseSetOption("smoothscroll=yes")).to.throw(
- Error,
+ expect(() => parsers.parseSetOption("paste")).toThrowError("Unknown");
+ expect(() => parsers.parseSetOption("nopaste")).toThrowError("Unknown");
+ expect(() => parsers.parseSetOption("smoothscroll=yes")).toThrowError(
"Invalid argument"
);
});
diff --git a/test/console/app/actions.test.ts b/test/console/app/actions.test.ts
index 2f9dc71..c903428 100644
--- a/test/console/app/actions.test.ts
+++ b/test/console/app/actions.test.ts
@@ -7,56 +7,49 @@ import {
SHOW_FIND,
SHOW_INFO,
} from "../../../src/console/app/actions";
-import { expect } from "chai";
-
-import browserFake from "webextensions-api-fake";
describe("console actions", () => {
- beforeEach(() => {
- (global as any).browser = browserFake();
- });
-
describe("hide", () => {
it("create CONSOLE_HIDE action", () => {
const action = consoleActions.hide();
- expect(action.type).to.equal(HIDE);
+ expect(action.type).toEqual(HIDE);
});
});
describe("showCommand", () => {
it("create CONSOLE_SHOW_COMMAND action", async () => {
const action = await consoleActions.showCommand("hello");
- expect(action.type).to.equal(SHOW_COMMAND);
- expect(action.text).to.equal("hello");
+ expect(action.type).toEqual(SHOW_COMMAND);
+ expect(action.text).toEqual("hello");
});
});
describe("showFind", () => {
it("create CONSOLE_SHOW_FIND action", () => {
const action = consoleActions.showFind();
- expect(action.type).to.equal(SHOW_FIND);
+ expect(action.type).toEqual(SHOW_FIND);
});
});
describe("showError", () => {
it("create CONSOLE_SHOW_ERROR action", () => {
const action = consoleActions.showError("an error");
- expect(action.type).to.equal(SHOW_ERROR);
- expect(action.text).to.equal("an error");
+ expect(action.type).toEqual(SHOW_ERROR);
+ expect(action.text).toEqual("an error");
});
});
describe("showInfo", () => {
it("create CONSOLE_SHOW_INFO action", () => {
const action = consoleActions.showInfo("an info");
- expect(action.type).to.equal(SHOW_INFO);
- expect(action.text).to.equal("an info");
+ expect(action.type).toEqual(SHOW_INFO);
+ expect(action.text).toEqual("an info");
});
});
describe("hideCommand", () => {
it("create CONSOLE_HIDE_COMMAND action", () => {
const action = consoleActions.hideCommand();
- expect(action.type).to.equal(HIDE_COMMAND);
+ expect(action.type).toEqual(HIDE_COMMAND);
});
});
});
diff --git a/test/console/app/reducer.test.ts b/test/console/app/reducer.test.ts
index 4406adc..eac2012 100644
--- a/test/console/app/reducer.test.ts
+++ b/test/console/app/reducer.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import reducer, { defaultState, State } from "../../../src/console/app/recuer";
import {
hide,
@@ -18,7 +17,7 @@ describe("app reducer", () => {
};
const nextState = reducer(initialState, hide());
- expect(nextState.mode).to.be.empty;
+ expect(nextState.mode).toHaveLength(0);
});
});
@@ -26,8 +25,8 @@ describe("app reducer", () => {
it("switches to command mode with a message", () => {
const nextState = reducer(defaultState, showCommand("open "));
- expect(nextState.mode).equals("command");
- expect(nextState.consoleText).equals("open ");
+ expect(nextState.mode).toEqual("command");
+ expect(nextState.consoleText).toEqual("open ");
});
});
@@ -35,7 +34,7 @@ describe("app reducer", () => {
it("switches to find mode with a message", () => {
const nextState = reducer(defaultState, showFind());
- expect(nextState.mode).equals("find");
+ expect(nextState.mode).toEqual("find");
});
});
@@ -43,8 +42,8 @@ describe("app reducer", () => {
it("switches to error message mode with a message", () => {
const nextState = reducer(defaultState, showError("error occurs"));
- expect(nextState.mode).equals("error");
- expect(nextState.messageText).equals("error occurs");
+ expect(nextState.mode).toEqual("error");
+ expect(nextState.messageText).toEqual("error occurs");
});
});
@@ -52,8 +51,8 @@ describe("app reducer", () => {
it("switches to info message mode with a message", () => {
const nextState = reducer(defaultState, showInfo("what's up"));
- expect(nextState.mode).equals("info");
- expect(nextState.messageText).equals("what's up");
+ expect(nextState.mode).toEqual("info");
+ expect(nextState.messageText).toEqual("what's up");
});
});
@@ -66,7 +65,7 @@ describe("app reducer", () => {
};
const nextState = reducer(initialState, hideCommand());
- expect(nextState.mode).to.be.empty;
+ expect(nextState.mode).toHaveLength(0);
});
});
@@ -78,7 +77,7 @@ describe("app reducer", () => {
};
const nextState = reducer(initialState, hideCommand());
- expect(nextState.mode).equals("info");
+ expect(nextState.mode).toEqual("info");
});
});
});
diff --git a/test/console/commandline/CommandLineParser.test.ts b/test/console/commandline/CommandLineParser.test.ts
index 7cba04c..d187e1e 100644
--- a/test/console/commandline/CommandLineParser.test.ts
+++ b/test/console/commandline/CommandLineParser.test.ts
@@ -2,27 +2,26 @@ import CommandLineParser, {
InputPhase,
} from "../../../src/console/commandline/CommandLineParser";
import { Command } from "../../../src/shared/Command";
-import { expect } from "chai";
describe("CommandLineParser", () => {
describe("#inputPhase", () => {
it("returns parsed command-line", () => {
const sut = new CommandLineParser();
- expect(sut.inputPhase("")).to.equal(InputPhase.OnCommand);
- expect(sut.inputPhase("op")).to.equal(InputPhase.OnCommand);
- expect(sut.inputPhase("open ")).to.equal(InputPhase.OnArgs);
- expect(sut.inputPhase("open apple")).to.equal(InputPhase.OnArgs);
+ expect(sut.inputPhase("")).toEqual(InputPhase.OnCommand);
+ expect(sut.inputPhase("op")).toEqual(InputPhase.OnCommand);
+ expect(sut.inputPhase("open ")).toEqual(InputPhase.OnArgs);
+ expect(sut.inputPhase("open apple")).toEqual(InputPhase.OnArgs);
});
});
describe("#parse", () => {
it("returns parsed command-line", () => {
const sut = new CommandLineParser();
- expect(sut.parse("open google apple")).to.deep.equal({
+ expect(sut.parse("open google apple")).toEqual({
command: Command.Open,
args: "google apple",
});
- expect(sut.parse("qa")).to.deep.equal({
+ expect(sut.parse("qa")).toEqual({
command: Command.QuitAll,
args: "",
});
diff --git a/test/console/commandline/CommandParser.test.ts b/test/console/commandline/CommandParser.test.ts
index f72afd6..a8e82df 100644
--- a/test/console/commandline/CommandParser.test.ts
+++ b/test/console/commandline/CommandParser.test.ts
@@ -2,16 +2,15 @@ import CommandParser, {
UnknownCommandError,
} from "../../../src/console/commandline/CommandParser";
import { Command } from "../../../src/shared/Command";
-import { expect } from "chai";
describe("CommandParser", () => {
describe("#parse", () => {
it("returns matched command with the string", () => {
const sut = new CommandParser();
- expect(sut.parse("open")).to.equal(Command.Open);
- expect(sut.parse("w")).to.equal(Command.WindowOpen);
- expect(sut.parse("bdelete!")).to.equal(Command.BufferDeleteForce);
- expect(() => sut.parse("harakiri")).to.throw(UnknownCommandError);
+ expect(sut.parse("open")).toEqual(Command.Open);
+ expect(sut.parse("w")).toEqual(Command.WindowOpen);
+ expect(sut.parse("bdelete!")).toEqual(Command.BufferDeleteForce);
+ expect(() => sut.parse("harakiri")).toThrow(UnknownCommandError);
});
});
});
diff --git a/test/console/completion/reducer.test.ts b/test/console/completion/reducer.test.ts
index b742872..43b9807 100644
--- a/test/console/completion/reducer.test.ts
+++ b/test/console/completion/reducer.test.ts
@@ -2,7 +2,6 @@ import reducer, {
defaultState,
State,
} from "../../../src/console/completion/reducer";
-import { expect } from "chai";
import {
initCompletion,
selectNext,
@@ -20,7 +19,7 @@ describe("completion reducer", () => {
initCompletion([CompletionType.Bookmarks, CompletionType.History])
);
- expect(nextState.completionTypes).deep.equals([
+ expect(nextState.completionTypes).toEqual([
CompletionType.Bookmarks,
CompletionType.History,
]);
@@ -31,7 +30,7 @@ describe("completion reducer", () => {
it("sets a completion source", () => {
const nextState = reducer(defaultState, setCompletionSource("open "));
- expect(nextState.completionSource).equals("open ");
+ expect(nextState.completionSource).toEqual("open ");
});
});
@@ -51,7 +50,7 @@ describe("completion reducer", () => {
])
);
- expect(nextState.completions).deep.equals([
+ expect(nextState.completions).toEqual([
{
name: "Apple",
items: [{}, {}],
@@ -65,25 +64,25 @@ describe("completion reducer", () => {
});
describe("selectNext", () => {
- context("when no completion groups", () => {
+ describe("when no completion groups", () => {
it("does nothing", () => {
const nextState = reducer(defaultState, selectNext());
- expect(nextState.select).equals(-1);
+ expect(nextState.select).toEqual(-1);
});
});
- context("when no completion items", () => {
+ describe("when no completion items", () => {
it("does nothing", () => {
const state = {
...defaultState,
completions: [{ name: "apple", items: [] }],
};
const nextState = reducer(state, selectNext());
- expect(nextState.select).equals(-1);
+ expect(nextState.select).toEqual(-1);
});
});
- context("when completions exist", () => {
+ describe("when completions exist", () => {
it("selects next selection", () => {
let state: State = {
...defaultState,
@@ -101,40 +100,40 @@ describe("completion reducer", () => {
};
state = reducer(state, selectNext());
- expect(state.select).equals(0);
+ expect(state.select).toEqual(0);
state = reducer(state, selectNext());
- expect(state.select).equals(1);
+ expect(state.select).toEqual(1);
state = reducer(state, selectNext());
- expect(state.select).equals(2);
+ expect(state.select).toEqual(2);
state = reducer(state, selectNext());
- expect(state.select).equals(-1);
+ expect(state.select).toEqual(-1);
});
});
});
describe("selectPrev", () => {
- context("when no completion groups", () => {
+ describe("when no completion groups", () => {
it("does nothing", () => {
const nextState = reducer(defaultState, selectPrev());
- expect(nextState.select).equals(-1);
+ expect(nextState.select).toEqual(-1);
});
- context("when no completion items", () => {
+ describe("when no completion items", () => {
it("does nothing", () => {
const state = {
...defaultState,
completions: [{ name: "apple", items: [] }],
};
const nextState = reducer(state, selectPrev());
- expect(nextState.select).equals(-1);
+ expect(nextState.select).toEqual(-1);
});
});
});
- context("when completions exist", () => {
+ describe("when completions exist", () => {
it("selects a previous completion", () => {
let state: State = {
...defaultState,
@@ -152,16 +151,16 @@ describe("completion reducer", () => {
};
state = reducer(state, selectPrev());
- expect(state).to.have.property("select", 2);
+ expect(state).toHaveProperty("select", 2);
state = reducer(state, selectPrev());
- expect(state).to.have.property("select", 1);
+ expect(state).toHaveProperty("select", 1);
state = reducer(state, selectPrev());
- expect(state).to.have.property("select", 0);
+ expect(state).toHaveProperty("select", 0);
state = reducer(state, selectPrev());
- expect(state).to.have.property("select", -1);
+ expect(state).toHaveProperty("select", -1);
});
});
});
diff --git a/test/console/components/ErrorMessage.test.tsx b/test/console/components/ErrorMessage.test.tsx
index 46ec0b0..45b3052 100644
--- a/test/console/components/ErrorMessage.test.tsx
+++ b/test/console/components/ErrorMessage.test.tsx
@@ -1,17 +1,16 @@
import React from "react";
import ReactTestRenderer from "react-test-renderer";
-import { expect } from "chai";
import ErrorMessage from "../../../src/console/components/ErrorMessage";
describe("console/components/console/completion/ErrorMessage", () => {
it("renders an error message", () => {
const root = ReactTestRenderer.create(
- <ErrorMessage mode="error">Hello!</ErrorMessage>
+ <ErrorMessage>Hello!</ErrorMessage>
).root;
const p = root.findByType("p");
- expect(p.props["role"]).to.equal("alert");
- expect(p.children).to.deep.equal(["Hello!"]);
+ expect(p.props["role"]).toEqual("alert");
+ expect(p.children).toEqual(["Hello!"]);
});
});
diff --git a/test/console/components/InfoMessage.test.tsx b/test/console/components/InfoMessage.test.tsx
index 5b678ff..9f3a68d 100644
--- a/test/console/components/InfoMessage.test.tsx
+++ b/test/console/components/InfoMessage.test.tsx
@@ -1,17 +1,16 @@
import React from "react";
import ReactTestRenderer from "react-test-renderer";
-import { expect } from "chai";
import InfoMessage from "../../../src/console/components/InfoMessage";
describe("console/components/console/completion/InfoMessage", () => {
it("renders an information message", () => {
const root = ReactTestRenderer.create(
- <InfoMessage mode="info">Hello!</InfoMessage>
+ <InfoMessage>Hello!</InfoMessage>
).root;
const p = root.findByType("p");
- expect(p.props["role"]).to.equal("status");
- expect(p.children).to.deep.equal(["Hello!"]);
+ expect(p.props["role"]).toEqual("status");
+ expect(p.children).toEqual(["Hello!"]);
});
});
diff --git a/test/console/components/console/Completion.test.tsx b/test/console/components/console/Completion.test.tsx
index 9b47637..7dd634f 100644
--- a/test/console/components/console/Completion.test.tsx
+++ b/test/console/components/console/Completion.test.tsx
@@ -1,7 +1,6 @@
import React from "react";
import Completion from "../../../../src/console/components/console/Completion";
import ReactTestRenderer from "react-test-renderer";
-import { expect } from "chai";
import CompletionTitle from "../../../../src/console/components/console/CompletionTitle";
import CompletionItem from "../../../../src/console/components/console/CompletionItem";
@@ -31,16 +30,16 @@ describe("console/components/console/completion/Completion", () => {
).root;
const groups = root.findAllByProps({ role: "group" });
- expect(groups).to.have.lengthOf(2);
+ expect(groups).toHaveLength(2);
groups.forEach((group, i) => {
const title = group.findByType(CompletionTitle);
- expect(title.props.title).to.equal(completions[i].name);
+ expect(title.props.title).toEqual(completions[i].name);
const items = group.findAllByType(CompletionItem);
- expect(items).to.have.lengthOf(completions[i].items.length);
+ expect(items).toHaveLength(completions[i].items.length);
items.forEach((item, j) => {
- expect(item.props.caption).to.equal(completions[i].items[j].caption);
+ expect(item.props.caption).toEqual(completions[i].items[j].caption);
});
});
});
@@ -51,7 +50,7 @@ describe("console/components/console/completion/Completion", () => {
).root;
const items = root.findAllByType(CompletionItem);
- expect(items[3].props.highlight).to.be.true;
+ expect(items[3].props.highlight).toBeTruthy;
});
it("does not highlight any items", () => {
@@ -60,7 +59,7 @@ describe("console/components/console/completion/Completion", () => {
).root;
const items = root.findAllByType(CompletionItem);
- expect(items.every((item) => item.props.highlight === false)).to.be.true;
+ expect(items.every((item) => item.props.highlight === false)).toBeTruthy;
});
it("limits completion items", () => {
@@ -78,7 +77,7 @@ describe("console/components/console/completion/Completion", () => {
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
true,
true,
true,
@@ -96,11 +95,11 @@ describe("console/components/console/completion/Completion", () => {
const items = root
.findAllByType(CompletionItem)
.map((item) => item.props.shown);
- expect(items[1]).to.be.true;
+ expect(items[1]).toBeTruthy;
});
it("scrolls up to down with select", () => {
- let component: ReturnType<ReactTestRenderer["create"]> | null = null;
+ let component: ReactTestRenderer.ReactTestRenderer | null = null;
ReactTestRenderer.act(() => {
component = ReactTestRenderer.create(
@@ -108,7 +107,7 @@ describe("console/components/console/completion/Completion", () => {
);
});
- const root = component.root;
+ const root = component!.root;
let items = root.findAllByType(CompletionItem);
let showns = root
@@ -120,7 +119,7 @@ describe("console/components/console/completion/Completion", () => {
].flat()
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
true,
true,
true,
@@ -132,7 +131,7 @@ describe("console/components/console/completion/Completion", () => {
]);
ReactTestRenderer.act(() => {
- component.update(
+ component!.update(
<Completion completions={completions} size={3} select={2} />
);
});
@@ -146,7 +145,7 @@ describe("console/components/console/completion/Completion", () => {
].flat()
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
false,
true,
true,
@@ -156,10 +155,10 @@ describe("console/components/console/completion/Completion", () => {
false,
false,
]);
- expect(items[2].props.highlight).to.be.true;
+ expect(items[2].props.highlight).toBeTruthy;
ReactTestRenderer.act(() => {
- component.update(
+ component!.update(
<Completion completions={completions} size={3} select={3} />
);
});
@@ -173,7 +172,7 @@ describe("console/components/console/completion/Completion", () => {
].flat()
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
false,
false,
false,
@@ -183,18 +182,18 @@ describe("console/components/console/completion/Completion", () => {
false,
false,
]);
- expect(items[3].props.highlight).to.be.true;
+ expect(items[3].props.highlight).toBeTruthy;
});
it("scrolls down to up with select", () => {
- let component: ReturnType<ReactTestRenderer["create"]> | null = null;
+ let component: ReactTestRenderer.ReactTestRenderer | null = null;
ReactTestRenderer.act(() => {
component = ReactTestRenderer.create(
<Completion completions={completions} size={3} select={5} />
);
});
- const root = component.root;
+ const root = component!.root;
let items = root.findAllByType(CompletionItem);
let showns = root
@@ -207,7 +206,7 @@ describe("console/components/console/completion/Completion", () => {
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
false,
false,
false,
@@ -217,10 +216,10 @@ describe("console/components/console/completion/Completion", () => {
true,
true,
]);
- expect(items[5].props.highlight).to.be.true;
+ expect(items[5].props.highlight).toBeTruthy;
ReactTestRenderer.act(() => {
- component.update(
+ component!.update(
<Completion completions={completions} size={3} select={4} />
);
});
@@ -234,7 +233,7 @@ describe("console/components/console/completion/Completion", () => {
].flat()
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
false,
false,
false,
@@ -244,10 +243,10 @@ describe("console/components/console/completion/Completion", () => {
true,
true,
]);
- expect(items[4].props.highlight).to.be.true;
+ expect(items[4].props.highlight).toBeTruthy;
ReactTestRenderer.act(() => {
- component.update(
+ component!.update(
<Completion completions={completions} size={3} select={3} />
);
});
@@ -261,7 +260,7 @@ describe("console/components/console/completion/Completion", () => {
].flat()
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
false,
false,
false,
@@ -271,10 +270,10 @@ describe("console/components/console/completion/Completion", () => {
true,
true,
]);
- expect(items[3].props.highlight).to.be.true;
+ expect(items[3].props.highlight).toBeTruthy;
ReactTestRenderer.act(() => {
- component.update(
+ component!.update(
<Completion completions={completions} size={3} select={2} />
);
});
@@ -288,7 +287,7 @@ describe("console/components/console/completion/Completion", () => {
].flat()
)
.flat();
- expect(showns).to.deep.equal([
+ expect(showns).toEqual([
false,
false,
false,
@@ -298,6 +297,6 @@ describe("console/components/console/completion/Completion", () => {
false,
false,
]);
- expect(items[2].props.highlight).to.be.true;
+ expect(items[2].props.highlight).toBeTruthy;
});
});
diff --git a/test/console/components/console/CompletionItem.test.tsx b/test/console/components/console/CompletionItem.test.tsx
index 3a4b1f2..ae73b21 100644
--- a/test/console/components/console/CompletionItem.test.tsx
+++ b/test/console/components/console/CompletionItem.test.tsx
@@ -1,6 +1,5 @@
import React from "react";
import ReactTestRenderer from "react-test-renderer";
-import { expect } from "chai";
import CompletionItem from "../../../../src/console/components/console/CompletionItem";
describe("console/components/console/completion/CompletionItem", () => {
@@ -14,8 +13,8 @@ describe("console/components/console/completion/CompletionItem", () => {
/>
).root;
const spans = root.findAllByType("span");
- expect(spans).to.have.lengthOf(2);
- expect(spans[0].children).to.deep.equal(["twitter"]);
- expect(spans[1].children).to.deep.equal(["https://twitter.com/"]);
+ expect(spans).toHaveLength(2);
+ expect(spans[0].children).toEqual(["twitter"]);
+ expect(spans[1].children).toEqual(["https://twitter.com/"]);
});
});
diff --git a/test/console/components/console/CompletionTitle.test.tsx b/test/console/components/console/CompletionTitle.test.tsx
index d8cc411..5843c43 100644
--- a/test/console/components/console/CompletionTitle.test.tsx
+++ b/test/console/components/console/CompletionTitle.test.tsx
@@ -1,6 +1,5 @@
import React from "react";
import ReactTestRenderer from "react-test-renderer";
-import { expect } from "chai";
import CompletionTitle from "../../../../src/console/components/console/CompletionTitle";
describe("console/components/console/completion/CompletionTitle", () => {
@@ -10,6 +9,6 @@ describe("console/components/console/completion/CompletionTitle", () => {
).root;
const li = root.findByType("li");
- expect(li.children).to.deep.equal(["Fruits"]);
+ expect(li.children).toEqual(["Fruits"]);
});
});
diff --git a/test/content/InputDriver.test.ts b/test/content/InputDriver.test.ts
index f464dac..9ab0965 100644
--- a/test/content/InputDriver.test.ts
+++ b/test/content/InputDriver.test.ts
@@ -1,7 +1,10 @@
+/**
+ * @jest-environment jsdom
+ */
+
import InputDriver, {
keyFromKeyboardEvent,
} from "../../src/content/InputDriver";
-import { expect } from "chai";
import Key from "../../src/shared/settings/Key";
describe("InputDriver", () => {
@@ -20,11 +23,11 @@ describe("InputDriver", () => {
it("register callbacks", (done) => {
driver.onKey((key: Key): boolean => {
- expect(key.key).to.equal("a");
- expect(key.ctrl).to.be.true;
- expect(key.shift).to.be.false;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("a");
+ expect(key.ctrl).toBeTruthy;
+ expect(key.shift).toBeFalsy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
done();
return true;
});
@@ -65,8 +68,8 @@ describe("InputDriver", () => {
target.dispatchEvent(e);
}
- expect(a).to.equal(1);
- expect(b).to.equal(1);
+ expect(a).toEqual(1);
+ expect(b).toEqual(1);
});
it("propagates and stop handler chain", () => {
@@ -88,14 +91,14 @@ describe("InputDriver", () => {
target.dispatchEvent(new KeyboardEvent("keydown", { key: "b" }));
- expect(a).to.equal(1);
- expect(b).to.equal(1);
- expect(c).to.equal(0);
+ expect(a).toEqual(1);
+ expect(b).toEqual(1);
+ expect(c).toEqual(0);
});
it("does not invoke only meta keys", () => {
driver.onKey((_key: Key): boolean => {
- expect.fail();
+ throw new Error("unexpected reach");
return false;
});
@@ -110,7 +113,7 @@ describe("InputDriver", () => {
const input = window.document.createElement(name);
const driver = new InputDriver(input);
driver.onKey((_key: Key): boolean => {
- expect.fail();
+ throw new Error("unexpected reach");
return false;
});
input.dispatchEvent(new KeyboardEvent("keydown", { key: "x" }));
@@ -121,7 +124,7 @@ describe("InputDriver", () => {
const div = window.document.createElement("div");
const driver = new InputDriver(div);
driver.onKey((_key: Key): boolean => {
- expect.fail();
+ throw new Error("unexpected reach");
return false;
});
@@ -144,11 +147,11 @@ describe("#keyFromKeyboardEvent", () => {
metaKey: true,
})
);
- expect(k.key).to.equal("x");
- expect(k.shift).to.be.false;
- expect(k.ctrl).to.be.true;
- expect(k.alt).to.be.false;
- expect(k.meta).to.be.true;
+ expect(k.key).toEqual("x");
+ expect(k.shift).toBeFalsy;
+ expect(k.ctrl).toBeTruthy;
+ expect(k.alt).toBeFalsy;
+ expect(k.meta).toBeTruthy;
});
it("returns from keyboard input Shift+Esc", () => {
@@ -161,11 +164,11 @@ describe("#keyFromKeyboardEvent", () => {
metaKey: true,
})
);
- expect(k.key).to.equal("Esc");
- expect(k.shift).to.be.true;
- expect(k.ctrl).to.be.false;
- expect(k.alt).to.be.false;
- expect(k.meta).to.be.true;
+ expect(k.key).toEqual("Esc");
+ expect(k.shift).toBeTruthy;
+ expect(k.ctrl).toBeFalsy;
+ expect(k.alt).toBeFalsy;
+ expect(k.meta).toBeTruthy;
});
it("returns from keyboard input Ctrl+$", () => {
@@ -179,11 +182,11 @@ describe("#keyFromKeyboardEvent", () => {
metaKey: false,
})
);
- expect(k.key).to.equal("$");
- expect(k.shift).to.be.false;
- expect(k.ctrl).to.be.true;
- expect(k.alt).to.be.false;
- expect(k.meta).to.be.false;
+ expect(k.key).toEqual("$");
+ expect(k.shift).toBeFalsy;
+ expect(k.ctrl).toBeTruthy;
+ expect(k.alt).toBeFalsy;
+ expect(k.meta).toBeFalsy;
});
it("returns from keyboard input Crtl+Space", () => {
@@ -196,10 +199,10 @@ describe("#keyFromKeyboardEvent", () => {
metaKey: false,
})
);
- expect(k.key).to.equal("Space");
- expect(k.shift).to.be.false;
- expect(k.ctrl).to.be.true;
- expect(k.alt).to.be.false;
- expect(k.meta).to.be.false;
+ expect(k.key).toEqual("Space");
+ expect(k.shift).toBeFalsy;
+ expect(k.ctrl).toBeTruthy;
+ expect(k.alt).toBeFalsy;
+ expect(k.meta).toBeFalsy;
});
});
diff --git a/test/content/domains/KeySequence.test.ts b/test/content/domains/KeySequence.test.ts
index 1d1debe..683f592 100644
--- a/test/content/domains/KeySequence.test.ts
+++ b/test/content/domains/KeySequence.test.ts
@@ -1,5 +1,4 @@
import KeySequence from "../../../src/content/domains/KeySequence";
-import { expect } from "chai";
import Key from "../../../src/shared/settings/Key";
describe("KeySequence", () => {
@@ -9,9 +8,9 @@ describe("KeySequence", () => {
seq.push(Key.fromMapKey("g"));
seq.push(Key.fromMapKey("<S-U>"));
- expect(seq.keys[0].key).to.equal("g");
- expect(seq.keys[1].key).to.equal("U");
- expect(seq.keys[1].shift).to.be.true;
+ expect(seq.keys[0].key).toEqual("g");
+ expect(seq.keys[1].key).toEqual("U");
+ expect(seq.keys[1].shift).toBeTruthy;
});
});
@@ -22,13 +21,13 @@ describe("KeySequence", () => {
Key.fromMapKey("<S-U>"),
]);
- expect(seq.startsWith(new KeySequence([]))).to.be.true;
- expect(seq.startsWith(new KeySequence([Key.fromMapKey("g")]))).to.be.true;
+ expect(seq.startsWith(new KeySequence([]))).toBeTruthy;
+ expect(seq.startsWith(new KeySequence([Key.fromMapKey("g")]))).toBeTruthy;
expect(
seq.startsWith(
new KeySequence([Key.fromMapKey("g"), Key.fromMapKey("<S-U>")])
)
- ).to.be.true;
+ ).toBeTruthy;
expect(
seq.startsWith(
new KeySequence([
@@ -37,17 +36,15 @@ describe("KeySequence", () => {
Key.fromMapKey("x"),
])
)
- ).to.be.false;
- expect(seq.startsWith(new KeySequence([Key.fromMapKey("h")]))).to.be
- .false;
+ ).toBeFalsy;
+ expect(seq.startsWith(new KeySequence([Key.fromMapKey("h")]))).toBeFalsy;
});
it("returns true if the empty sequence starts with an empty sequence", () => {
const seq = new KeySequence([]);
- expect(seq.startsWith(new KeySequence([]))).to.be.true;
- expect(seq.startsWith(new KeySequence([Key.fromMapKey("h")]))).to.be
- .false;
+ expect(seq.startsWith(new KeySequence([]))).toBeTruthy;
+ expect(seq.startsWith(new KeySequence([Key.fromMapKey("h")]))).toBeFalsy;
});
});
@@ -58,14 +55,14 @@ describe("KeySequence", () => {
new Key({ key: "4" }),
new Key({ key: "0" }),
]).isDigitOnly()
- ).to.be.true;
+ ).toBeTruthy;
expect(
new KeySequence([
new Key({ key: "4" }),
new Key({ key: "0" }),
new Key({ key: "z" }),
]).isDigitOnly()
- ).to.be.false;
+ ).toBeFalsy;
});
});
@@ -77,7 +74,7 @@ describe("KeySequence", () => {
new Key({ key: "g" }),
new Key({ key: "g" }),
]);
- expect(seq.repeatCount()).to.equal(10);
+ expect(seq.repeatCount()).toEqual(10);
seq = new KeySequence([
new Key({ key: "0" }),
@@ -85,23 +82,23 @@ describe("KeySequence", () => {
new Key({ key: "g" }),
new Key({ key: "g" }),
]);
- expect(seq.repeatCount()).to.equal(5);
+ expect(seq.repeatCount()).toEqual(5);
});
it("returns 1 if no numeric prefix", () => {
let seq = new KeySequence([new Key({ key: "g" }), new Key({ key: "g" })]);
- expect(seq.repeatCount()).to.equal(1);
+ expect(seq.repeatCount()).toEqual(1);
seq = new KeySequence([]);
- expect(seq.repeatCount()).to.equal(1);
+ expect(seq.repeatCount()).toEqual(1);
});
it("returns whole keys if digits only sequence", () => {
let seq = new KeySequence([new Key({ key: "1" }), new Key({ key: "0" })]);
- expect(seq.repeatCount()).to.equal(10);
+ expect(seq.repeatCount()).toEqual(10);
seq = new KeySequence([new Key({ key: "0" }), new Key({ key: "5" })]);
- expect(seq.repeatCount()).to.equal(5);
+ expect(seq.repeatCount()).toEqual(5);
});
});
@@ -114,7 +111,7 @@ describe("KeySequence", () => {
new Key({ key: "g" }),
new Key({ key: "3" }),
]).trimNumericPrefix();
- expect(seq.keys.map((key) => key.key)).to.deep.equal(["g", "g", "3"]);
+ expect(seq.keys.map((key) => key.key)).toEqual(["g", "g", "3"]);
});
it("returns empty if keys contains only digis", () => {
@@ -122,7 +119,7 @@ describe("KeySequence", () => {
new Key({ key: "1" }),
new Key({ key: "0" }),
]).trimNumericPrefix();
- expect(seq.trimNumericPrefix().keys).to.be.empty;
+ expect(seq.trimNumericPrefix().keys).toHaveLength(0);
});
it("returns itself if no numeric prefix", () => {
@@ -132,23 +129,21 @@ describe("KeySequence", () => {
new Key({ key: "3" }),
]).trimNumericPrefix();
- expect(seq.keys.map((key) => key.key)).to.deep.equal(["g", "g", "3"]);
+ expect(seq.keys.map((key) => key.key)).toEqual(["g", "g", "3"]);
});
});
describe("#splitNumericPrefix", () => {
it("splits numeric prefix", () => {
- expect(
- KeySequence.fromMapKeys("10gg").splitNumericPrefix()
- ).to.deep.equal([
+ expect(KeySequence.fromMapKeys("10gg").splitNumericPrefix()).toEqual([
KeySequence.fromMapKeys("10"),
KeySequence.fromMapKeys("gg"),
]);
- expect(KeySequence.fromMapKeys("10").splitNumericPrefix()).to.deep.equal([
+ expect(KeySequence.fromMapKeys("10").splitNumericPrefix()).toEqual([
KeySequence.fromMapKeys("10"),
new KeySequence([]),
]);
- expect(KeySequence.fromMapKeys("gg").splitNumericPrefix()).to.deep.equal([
+ expect(KeySequence.fromMapKeys("gg").splitNumericPrefix()).toEqual([
new KeySequence([]),
KeySequence.fromMapKeys("gg"),
]);
@@ -158,22 +153,22 @@ describe("KeySequence", () => {
describe("#fromMapKeys", () => {
it("returns mapped keys for Shift+Esc", () => {
const keys = KeySequence.fromMapKeys("<S-Esc>").keys;
- expect(keys).to.have.lengthOf(1);
- expect(keys[0].key).to.equal("Esc");
- expect(keys[0].shift).to.be.true;
+ expect(keys).toHaveLength(1);
+ expect(keys[0].key).toEqual("Esc");
+ expect(keys[0].shift).toBeTruthy;
});
it("returns mapped keys for a<C-B><A-C>d<M-e>", () => {
const keys = KeySequence.fromMapKeys("a<C-B><A-C>d<M-e>").keys;
- expect(keys).to.have.lengthOf(5);
- expect(keys[0].key).to.equal("a");
- expect(keys[1].ctrl).to.be.true;
- expect(keys[1].key).to.equal("b");
- expect(keys[2].alt).to.be.true;
- expect(keys[2].key).to.equal("c");
- expect(keys[3].key).to.equal("d");
- expect(keys[4].meta).to.be.true;
- expect(keys[4].key).to.equal("e");
+ expect(keys).toHaveLength(5);
+ expect(keys[0].key).toEqual("a");
+ expect(keys[1].ctrl).toBeTruthy;
+ expect(keys[1].key).toEqual("b");
+ expect(keys[2].alt).toBeTruthy;
+ expect(keys[2].key).toEqual("c");
+ expect(keys[3].key).toEqual("d");
+ expect(keys[4].meta).toBeTruthy;
+ expect(keys[4].key).toEqual("e");
});
});
});
diff --git a/test/content/operators/impls/AddonOperatorFactoryChain.test.ts b/test/content/operators/impls/AddonOperatorFactoryChain.test.ts
index dde5a35..263104e 100644
--- a/test/content/operators/impls/AddonOperatorFactoryChain.test.ts
+++ b/test/content/operators/impls/AddonOperatorFactoryChain.test.ts
@@ -3,7 +3,6 @@ import EnableAddonOperator from "../../../../src/content/operators/impls/EnableA
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";
@@ -16,16 +15,16 @@ describe("AddonOperatorFactoryChain", () => {
new MockAddonEnabledRepository(),
new MockConsoleFramePresenter(false)
);
- expect(sut.create({ type: operations.ADDON_ENABLE }, 0)).to.be.instanceOf(
+ expect(sut.create({ type: operations.ADDON_ENABLE }, 0)).toBeInstanceOf(
EnableAddonOperator
);
- expect(
- sut.create({ type: operations.ADDON_DISABLE }, 0)
- ).to.be.instanceOf(DisableAddonOperator);
+ expect(sut.create({ type: operations.ADDON_DISABLE }, 0)).toBeInstanceOf(
+ 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;
+ ).toBeInstanceOf(ToggleAddonOperator);
+ expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeNull;
});
});
});
diff --git a/test/content/operators/impls/BackgroundOperationOperator.test.ts b/test/content/operators/impls/BackgroundOperationOperator.test.ts
index b8b1fbd..77efeb2 100644
--- a/test/content/operators/impls/BackgroundOperationOperator.test.ts
+++ b/test/content/operators/impls/BackgroundOperationOperator.test.ts
@@ -1,7 +1,6 @@
import * as operations from "../../../../src/shared/operations";
import BackgroundOperationOperator from "../../../../src/content/operators/impls/BackgroundOperationOperator";
import OperationClient from "../../../../src/content/client/OperationClient";
-import { expect } from "chai";
class MockOperationClient implements OperationClient {
public readonly executedOps: {
@@ -30,7 +29,7 @@ describe("BackgroundOperationOperator", () => {
await sut.run();
- expect(client.executedOps).to.deep.equal([
+ expect(client.executedOps).toEqual([
{ op: { type: operations.TAB_CLOSE }, repeat: 2 },
]);
});
diff --git a/test/content/operators/impls/ClipboardOperatorFactoryChain.test.ts b/test/content/operators/impls/ClipboardOperatorFactoryChain.test.ts
index 9ddc229..d4c61c4 100644
--- a/test/content/operators/impls/ClipboardOperatorFactoryChain.test.ts
+++ b/test/content/operators/impls/ClipboardOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import * as operations from "../../../../src/shared/operations";
-import { expect } from "chai";
import ClipboardOperatorFactoryChain from "../../../../src/content/operators/impls/ClipboardOperatorFactoryChain";
import YankURLOperator from "../../../../src/content/operators/impls/YankURLOperator";
import PasteOperator from "../../../../src/content/operators/impls/PasteOperator";
@@ -19,13 +18,13 @@ describe("ClipboardOperatorFactoryChain", () => {
new MockSettingRepository(),
new MockURLRepository()
);
- expect(sut.create({ type: operations.URLS_YANK }, 0)).to.be.instanceOf(
+ expect(sut.create({ type: operations.URLS_YANK }, 0)).toBeInstanceOf(
YankURLOperator
);
expect(
sut.create({ type: operations.URLS_PASTE, newTab: false }, 0)
- ).to.be.instanceOf(PasteOperator);
- expect(sut.create({ type: operations.SCROLL_TOP }, 0)).to.be.null;
+ ).toBeInstanceOf(PasteOperator);
+ expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeNull;
});
});
});
diff --git a/test/content/operators/impls/DisableAddonOperator.test.ts b/test/content/operators/impls/DisableAddonOperator.test.ts
index e05d1f1..bb137ac 100644
--- a/test/content/operators/impls/DisableAddonOperator.test.ts
+++ b/test/content/operators/impls/DisableAddonOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import DisableAddonOperator from "../../../../src/content/operators/impls/DisableAddonOperator";
import MockAddonIndicatorClient from "../../mock/MockAddonIndicatorClient";
import MockAddonEnabledRepository from "../../mock/MockAddonEnabledRepository";
@@ -14,9 +13,9 @@ describe("DisableAddonOperator", () => {
await sut.run();
- expect(client.enabled).to.be.false;
- expect(repository.enabled).to.be.false;
- expect(presenter.attached).to.be.false;
+ expect(client.enabled).toBeFalsy;
+ expect(repository.enabled).toBeFalsy;
+ expect(presenter.attached).toBeFalsy;
});
});
});
diff --git a/test/content/operators/impls/EnableAddonOperator.test.ts b/test/content/operators/impls/EnableAddonOperator.test.ts
index 6025608..cd838af 100644
--- a/test/content/operators/impls/EnableAddonOperator.test.ts
+++ b/test/content/operators/impls/EnableAddonOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import EnableAddonOperator from "../../../../src/content/operators/impls/EnableAddonOperator";
import MockAddonIndicatorClient from "../../mock/MockAddonIndicatorClient";
import MockAddonEnabledRepository from "../../mock/MockAddonEnabledRepository";
@@ -14,9 +13,9 @@ describe("EnableAddonOperator", () => {
await sut.run();
- expect(client.enabled).to.be.true;
- expect(repository.enabled).to.be.true;
- expect(presenter.attached).to.be.true;
+ expect(client.enabled).toBeTruthy;
+ expect(repository.enabled).toBeTruthy;
+ expect(presenter.attached).toBeTruthy;
});
});
});
diff --git a/test/content/operators/impls/EnableJumpMarkOperator.test.ts b/test/content/operators/impls/EnableJumpMarkOperator.test.ts
index 66b4ecd..f81d6dc 100644
--- a/test/content/operators/impls/EnableJumpMarkOperator.test.ts
+++ b/test/content/operators/impls/EnableJumpMarkOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import EnableJumpMarkOperator from "../../../../src/content/operators/impls/EnableJumpMarkOperator";
import MockMarkKeyRepository from "../../mock/MockMarkKeyRepository";
@@ -13,7 +12,7 @@ describe("EnableJumpMarkOperator", () => {
await sut.run();
- expect(repository.jumpMode).to.be.true;
+ expect(repository.jumpMode).toBeTruthy;
});
});
});
diff --git a/test/content/operators/impls/EnableSetMarkOperator.test.ts b/test/content/operators/impls/EnableSetMarkOperator.test.ts
index b28874d..33ce2ba 100644
--- a/test/content/operators/impls/EnableSetMarkOperator.test.ts
+++ b/test/content/operators/impls/EnableSetMarkOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import EnableSetMarkOperator from "../../../../src/content/operators/impls/EnableSetMarkOperator";
import MockMarkKeyRepository from "../../mock/MockMarkKeyRepository";
@@ -13,7 +12,7 @@ describe("EnableSetMarkOperator", () => {
await sut.run();
- expect(repository.setMode).to.be.true;
+ expect(repository.setMode).toBeTruthy;
});
});
});
diff --git a/test/content/operators/impls/FocusOperator.test.ts b/test/content/operators/impls/FocusOperator.test.ts
index a0eb53b..2d72620 100644
--- a/test/content/operators/impls/FocusOperator.test.ts
+++ b/test/content/operators/impls/FocusOperator.test.ts
@@ -1,4 +1,3 @@
-import sinon from "sinon";
import FocusOperator from "../../../../src/content/operators/impls/FocusOperator";
import MockFocusPresenter from "../../mock/MockFocusPresenter";
@@ -6,12 +5,14 @@ describe("FocusOperator", () => {
describe("#run", () => {
it("focus a first input", async () => {
const presenter = new MockFocusPresenter();
- const mock = sinon.mock(presenter).expects("focusFirstElement");
+ const focusFirstElementSpy = jest
+ .spyOn(presenter, "focusFirstElement")
+ .mockReturnValue(true);
const sut = new FocusOperator(presenter);
await sut.run();
- mock.verify();
+ expect(focusFirstElementSpy).toBeCalled();
});
});
});
diff --git a/test/content/operators/impls/FocusOperatorFactoryChain.test.ts b/test/content/operators/impls/FocusOperatorFactoryChain.test.ts
index 91f734b..84a4a52 100644
--- a/test/content/operators/impls/FocusOperatorFactoryChain.test.ts
+++ b/test/content/operators/impls/FocusOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import * as operations from "../../../../src/shared/operations";
-import { expect } from "chai";
import FocusOperatorFactoryChain from "../../../../src/content/operators/impls/FocusOperatorFactoryChain";
import FocusOperator from "../../../../src/content/operators/impls/FocusOperator";
import MockFocusPresenter from "../../mock/MockFocusPresenter";
@@ -8,10 +7,10 @@ describe("FocusOperatorFactoryChain", () => {
describe("#create", () => {
it("returns an operator", () => {
const sut = new FocusOperatorFactoryChain(new MockFocusPresenter());
- expect(sut.create({ type: operations.FOCUS_INPUT }, 0)).to.be.instanceOf(
+ expect(sut.create({ type: operations.FOCUS_INPUT }, 0)).toBeInstanceOf(
FocusOperator
);
- expect(sut.create({ type: operations.SCROLL_TOP }, 0)).to.be.null;
+ expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeNull;
});
});
});
diff --git a/test/content/operators/impls/FollowOperatorFactoryChain.test.ts b/test/content/operators/impls/FollowOperatorFactoryChain.test.ts
index 526a93c..84a4a52 100644
--- a/test/content/operators/impls/FollowOperatorFactoryChain.test.ts
+++ b/test/content/operators/impls/FollowOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import * as operations from "../../../../src/shared/operations";
-import { expect } from "chai";
import FocusOperatorFactoryChain from "../../../../src/content/operators/impls/FocusOperatorFactoryChain";
import FocusOperator from "../../../../src/content/operators/impls/FocusOperator";
import MockFocusPresenter from "../../mock/MockFocusPresenter";
@@ -8,13 +7,10 @@ describe("FocusOperatorFactoryChain", () => {
describe("#create", () => {
it("returns an operator", () => {
const sut = new FocusOperatorFactoryChain(new MockFocusPresenter());
- expect(
- sut.create(
- { type: operations.FOCUS_INPUT, newTab: false, background: false },
- 0
- )
- ).to.be.instanceOf(FocusOperator);
- expect(sut.create({ type: operations.SCROLL_TOP }, 0)).to.be.null;
+ expect(sut.create({ type: operations.FOCUS_INPUT }, 0)).toBeInstanceOf(
+ FocusOperator
+ );
+ expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeNull;
});
});
});
diff --git a/test/content/operators/impls/HorizontalScrollOperator.test.ts b/test/content/operators/impls/HorizontalScrollOperator.test.ts
index f77a34e..abe6856 100644
--- a/test/content/operators/impls/HorizontalScrollOperator.test.ts
+++ b/test/content/operators/impls/HorizontalScrollOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import HorizontalScrollOperator from "../../../../src/content/operators/impls/HorizontalScrollOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("HorizontalScrollOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 1, y: 0 });
+ expect(presenter.getScroll()).toEqual({ x: 1, y: 0 });
});
it("scroll horizontally with repeats", async () => {
@@ -22,7 +21,7 @@ describe("HorizontalScrollOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 5, y: 0 });
+ expect(presenter.getScroll()).toEqual({ x: 5, y: 0 });
});
});
});
diff --git a/test/content/operators/impls/MarkOperatorFactoryChain.test.ts b/test/content/operators/impls/MarkOperatorFactoryChain.test.ts
index 1f094dd..99cb756 100644
--- a/test/content/operators/impls/MarkOperatorFactoryChain.test.ts
+++ b/test/content/operators/impls/MarkOperatorFactoryChain.test.ts
@@ -1,5 +1,4 @@
import * as operations from "../../../../src/shared/operations";
-import { expect } from "chai";
import MarkOperatorFactoryChain from "../../../../src/content/operators/impls/MarkOperatorFactoryChain";
import MockMarkKeyRepository from "../../mock/MockMarkKeyRepository";
import EnableSetMarkOperator from "../../../../src/content/operators/impls/EnableSetMarkOperator";
@@ -11,11 +10,11 @@ describe("MarkOperatorFactoryChain", () => {
const sut = new MarkOperatorFactoryChain(new MockMarkKeyRepository());
expect(
sut.create({ type: operations.MARK_SET_PREFIX }, 0)
- ).to.be.instanceOf(EnableSetMarkOperator);
+ ).toBeInstanceOf(EnableSetMarkOperator);
expect(
sut.create({ type: operations.MARK_JUMP_PREFIX }, 0)
- ).to.be.instanceOf(EnableJumpMarkOperator);
- expect(sut.create({ type: operations.SCROLL_TOP }, 0)).to.be.null;
+ ).toBeInstanceOf(EnableJumpMarkOperator);
+ expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeNull;
});
});
});
diff --git a/test/content/operators/impls/PageScrollOperator.test.ts b/test/content/operators/impls/PageScrollOperator.test.ts
index 80c9185..77d3a0f 100644
--- a/test/content/operators/impls/PageScrollOperator.test.ts
+++ b/test/content/operators/impls/PageScrollOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import PageScrollOperator from "../../../../src/content/operators/impls/PageScrollOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("PageScrollOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 1, y: 0 });
+ expect(presenter.getScroll()).toEqual({ x: 1, y: 0 });
});
it("scroll by a page with repeats", async () => {
@@ -22,7 +21,7 @@ describe("PageScrollOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 5, y: 0 });
+ expect(presenter.getScroll()).toEqual({ x: 5, y: 0 });
});
});
});
diff --git a/test/content/operators/impls/PasteOperator.test.ts b/test/content/operators/impls/PasteOperator.test.ts
index 8a3a374..fa42576 100644
--- a/test/content/operators/impls/PasteOperator.test.ts
+++ b/test/content/operators/impls/PasteOperator.test.ts
@@ -1,4 +1,3 @@
-import sinon from "sinon";
import PasteOperator from "../../../../src/content/operators/impls/PasteOperator";
import MockClipboardRepository from "../../mock/MockClipboardRepository";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -10,10 +9,9 @@ describe("PasteOperator", () => {
const clipboardRepository = new MockClipboardRepository("apple");
const settingRepository = new MockSettingRepository();
const operationClient = new MockOperationClient();
- const mockOperationClient = sinon
- .mock(operationClient)
- .expects("internalOpenUrl")
- .withArgs("https://google.com/search?q=apple");
+ const internalOpenUrlSpy = jest
+ .spyOn(operationClient, "internalOpenUrl")
+ .mockReturnValue(Promise.resolve());
const sut = new PasteOperator(
clipboardRepository,
settingRepository,
@@ -23,7 +21,10 @@ describe("PasteOperator", () => {
await sut.run();
- mockOperationClient.verify();
+ expect(internalOpenUrlSpy).toBeCalledWith(
+ "https://google.com/search?q=apple",
+ false
+ );
});
it("open a url", async () => {
@@ -32,10 +33,9 @@ describe("PasteOperator", () => {
);
const settingRepository = new MockSettingRepository();
const operationClient = new MockOperationClient();
- const mockOperationClient = sinon
- .mock(operationClient)
- .expects("internalOpenUrl")
- .withArgs("https://example.com/");
+ const internalOpenUrlSpy = jest
+ .spyOn(operationClient, "internalOpenUrl")
+ .mockReturnValue(Promise.resolve());
const sut = new PasteOperator(
clipboardRepository,
settingRepository,
@@ -45,7 +45,7 @@ describe("PasteOperator", () => {
await sut.run();
- mockOperationClient.verify();
+ expect(internalOpenUrlSpy).toBeCalledWith("https://example.com/", false);
});
});
});
diff --git a/test/content/operators/impls/ScrollOperatorFactoryChain.test.ts b/test/content/operators/impls/ScrollOperatorFactoryChain.test.ts
index 08034cb..3ba204a 100644
--- a/test/content/operators/impls/ScrollOperatorFactoryChain.test.ts
+++ b/test/content/operators/impls/ScrollOperatorFactoryChain.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import ScrollOperatorFactoryChain from "../../../../src/content/operators/impls/ScrollOperatorFactoryChain";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -20,27 +19,27 @@ describe("ScrollOperatorFactoryChain", () => {
);
expect(
sut.create({ type: operations.SCROLL_HORIZONALLY, count: 10 }, 0)
- ).to.be.instanceOf(HorizontalScrollOperator);
+ ).toBeInstanceOf(HorizontalScrollOperator);
expect(
sut.create({ type: operations.SCROLL_VERTICALLY, count: 10 }, 0)
- ).to.be.instanceOf(VerticalScrollOperator);
+ ).toBeInstanceOf(VerticalScrollOperator);
expect(
sut.create({ type: operations.SCROLL_PAGES, count: 10 }, 0)
- ).to.be.instanceOf(PageScrollOperator);
- expect(sut.create({ type: operations.SCROLL_TOP }, 0)).to.be.instanceOf(
+ ).toBeInstanceOf(PageScrollOperator);
+ expect(sut.create({ type: operations.SCROLL_TOP }, 0)).toBeInstanceOf(
ScrollToTopOperator
);
- expect(
- sut.create({ type: operations.SCROLL_BOTTOM }, 0)
- ).to.be.instanceOf(ScrollToBottomOperator);
- expect(sut.create({ type: operations.SCROLL_HOME }, 0)).to.be.instanceOf(
+ 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)).to.be.instanceOf(
+ expect(sut.create({ type: operations.SCROLL_END }, 0)).toBeInstanceOf(
ScrollToEndOperator
);
- expect(sut.create({ type: operations.PAGE_HOME, newTab: false }, 0)).to.be
- .null;
+ expect(sut.create({ type: operations.PAGE_HOME, newTab: false }, 0))
+ .toBeNull;
});
});
});
diff --git a/test/content/operators/impls/ScrollToBottomOperator.test.ts b/test/content/operators/impls/ScrollToBottomOperator.test.ts
index 500c8f2..f369227 100644
--- a/test/content/operators/impls/ScrollToBottomOperator.test.ts
+++ b/test/content/operators/impls/ScrollToBottomOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import ScrollToBottomOperator from "../../../../src/content/operators/impls/ScrollToBottomOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("ScrollToBottomOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 0, y: Infinity });
+ expect(presenter.getScroll()).toEqual({ x: 0, y: Infinity });
});
});
});
diff --git a/test/content/operators/impls/ScrollToEndOperator.test.ts b/test/content/operators/impls/ScrollToEndOperator.test.ts
index 0c98c8d..304d914 100644
--- a/test/content/operators/impls/ScrollToEndOperator.test.ts
+++ b/test/content/operators/impls/ScrollToEndOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import ScrollToEndOperator from "../../../../src/content/operators/impls/ScrollToEndOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("ScrollToEndOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: Infinity, y: 0 });
+ expect(presenter.getScroll()).toEqual({ x: Infinity, y: 0 });
});
});
});
diff --git a/test/content/operators/impls/ScrollToHomeOperator.test.ts b/test/content/operators/impls/ScrollToHomeOperator.test.ts
index f8614d2..e09c16a 100644
--- a/test/content/operators/impls/ScrollToHomeOperator.test.ts
+++ b/test/content/operators/impls/ScrollToHomeOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import ScrollToHomeOperator from "../../../../src/content/operators/impls/ScrollToHomeOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("ScrollToHomeOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 0, y: 10 });
+ expect(presenter.getScroll()).toEqual({ x: 0, y: 10 });
});
});
});
diff --git a/test/content/operators/impls/ScrollToTopOperator.test.ts b/test/content/operators/impls/ScrollToTopOperator.test.ts
index 25a84ba..7337bea 100644
--- a/test/content/operators/impls/ScrollToTopOperator.test.ts
+++ b/test/content/operators/impls/ScrollToTopOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import ScrollToTopOperator from "../../../../src/content/operators/impls/ScrollToTopOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("ScrollToTopOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 10, y: 0 });
+ expect(presenter.getScroll()).toEqual({ x: 10, y: 0 });
});
});
});
diff --git a/test/content/operators/impls/StartFollowOperator.test.ts b/test/content/operators/impls/StartFollowOperator.test.ts
index 8f9bd2d..4216cd0 100644
--- a/test/content/operators/impls/StartFollowOperator.test.ts
+++ b/test/content/operators/impls/StartFollowOperator.test.ts
@@ -1,4 +1,3 @@
-import sinon from "sinon";
import StartFollowOperator from "../../../../src/content/operators/impls/StartFollowOperator";
import MockFollowMasterClient from "../../mock/MockFollowMasterClient";
@@ -6,15 +5,14 @@ describe("StartFollowOperator", () => {
describe("#run", () => {
it("starts following links", async () => {
const client = new MockFollowMasterClient();
- const mock = sinon
- .mock(client)
- .expects("startFollow")
- .withArgs(true, false);
+ const startFollowSpy = jest
+ .spyOn(client, "startFollow")
+ .mockReturnValue();
const sut = new StartFollowOperator(client, true, false);
await sut.run();
- mock.verify();
+ expect(startFollowSpy).toBeCalledWith(true, false);
});
});
});
diff --git a/test/content/operators/impls/ToggleAddonOperator.test.ts b/test/content/operators/impls/ToggleAddonOperator.test.ts
index 1f291b5..cc77429 100644
--- a/test/content/operators/impls/ToggleAddonOperator.test.ts
+++ b/test/content/operators/impls/ToggleAddonOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import ToggleAddonOperator from "../../../../src/content/operators/impls/ToggleAddonOperator";
import MockAddonIndicatorClient from "../../mock/MockAddonIndicatorClient";
import MockAddonEnabledRepository from "../../mock/MockAddonEnabledRepository";
@@ -14,15 +13,15 @@ describe("ToggleAddonOperator", () => {
await sut.run();
- expect(client.enabled).to.be.false;
- expect(repository.enabled).to.be.false;
- expect(presenter.attached).to.be.false;
+ expect(client.enabled).toBeFalsy;
+ expect(repository.enabled).toBeFalsy;
+ expect(presenter.attached).toBeFalsy;
await sut.run();
- expect(client.enabled).to.be.true;
- expect(repository.enabled).to.be.true;
- expect(presenter.attached).to.be.true;
+ expect(client.enabled).toBeTruthy;
+ expect(repository.enabled).toBeTruthy;
+ expect(presenter.attached).toBeTruthy;
});
});
});
diff --git a/test/content/operators/impls/VerticalScrollOperator.test.ts b/test/content/operators/impls/VerticalScrollOperator.test.ts
index 05b15d2..1b87060 100644
--- a/test/content/operators/impls/VerticalScrollOperator.test.ts
+++ b/test/content/operators/impls/VerticalScrollOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import VerticalScrollOperator from "../../../../src/content/operators/impls/VerticalScrollOperator";
import MockScrollPresenter from "../../mock/MockScrollPresenter";
import MockSettingRepository from "../../mock/MockSettingRepository";
@@ -12,7 +11,7 @@ describe("VerticalScrollOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 0, y: 1 });
+ expect(presenter.getScroll()).toEqual({ x: 0, y: 1 });
});
it("scroll vertically with repeats", async () => {
@@ -22,7 +21,7 @@ describe("VerticalScrollOperator", () => {
await sut.run();
- expect(presenter.getScroll()).to.deep.equal({ x: 0, y: 5 });
+ expect(presenter.getScroll()).toEqual({ x: 0, y: 5 });
});
});
});
diff --git a/test/content/operators/impls/YankURLOperator.test.ts b/test/content/operators/impls/YankURLOperator.test.ts
index 46e3d06..3db28bf 100644
--- a/test/content/operators/impls/YankURLOperator.test.ts
+++ b/test/content/operators/impls/YankURLOperator.test.ts
@@ -1,4 +1,3 @@
-import { expect } from "chai";
import MockClipboardRepository from "../../mock/MockClipboardRepository";
import YankURLOperator from "../../../../src/content/operators/impls/YankURLOperator";
import MockURLRepository from "../../mock/MockURLRepository";
@@ -18,9 +17,9 @@ describe("YankOperation", () => {
await sut.run();
- expect(clipboardRepository.read()).to.equal("https://example.com/");
- expect(consoleClient.text).to.equal("Yanked https://example.com/");
- expect(consoleClient.isError).to.be.false;
+ expect(clipboardRepository.read()).toEqual("https://example.com/");
+ expect(consoleClient.text).toEqual("Yanked https://example.com/");
+ expect(consoleClient.isError).toBeFalsy;
});
});
});
diff --git a/test/content/presenters/Hint.test.html b/test/content/presenters/Hint.test.html
deleted file mode 100644
index b50c5fe..0000000
--- a/test/content/presenters/Hint.test.html
+++ /dev/null
@@ -1 +0,0 @@
-<a id='test-link' href='javascript:window.vimvixenTest="hello"' >link</a>
diff --git a/test/content/presenters/Hint.test.ts b/test/content/presenters/Hint.test.ts
index 1a7c868..b3b2d19 100644
--- a/test/content/presenters/Hint.test.ts
+++ b/test/content/presenters/Hint.test.ts
@@ -1,8 +1,11 @@
+/**
+ * @jest-environment jsdom
+ */
+
import AbstractHint, {
LinkHint,
InputHint,
} from "../../../src/content/presenters/Hint";
-import { expect } from "chai";
class Hint extends AbstractHint {}
@@ -17,7 +20,7 @@ describe("Hint", () => {
new Hint(link, "abc");
const elem = document.querySelector(".vimvixen-hint");
- expect(elem!.textContent!.trim()).to.be.equal("abc");
+ expect(elem!.textContent!.trim()).toEqual("abc");
});
});
@@ -29,7 +32,7 @@ describe("Hint", () => {
hint.show();
const elem = document.querySelector(".vimvixen-hint") as HTMLElement;
- expect(elem.style.display).to.not.equal("none");
+ expect(elem.style.display).not.toEqual("none");
});
});
@@ -40,7 +43,7 @@ describe("Hint", () => {
hint.hide();
const elem = document.querySelector(".vimvixen-hint") as HTMLElement;
- expect(elem.style.display).to.equal("none");
+ expect(elem.style.display).toEqual("none");
});
});
@@ -50,9 +53,9 @@ describe("Hint", () => {
const hint = new Hint(link, "abc");
const elem = document.querySelector(".vimvixen-hint")!;
- expect(elem.parentElement).to.not.be.null;
+ expect(elem.parentElement).not.toBeNull;
hint.remove();
- expect(elem.parentElement).to.be.null;
+ expect(elem.parentElement).toBeNull;
});
});
});
@@ -71,7 +74,7 @@ describe("LinkHint", () => {
const link = document.getElementById("test-link1") as HTMLAnchorElement;
const hint = new LinkHint(link, "abc");
- expect(hint.getLink()).to.equal("https://google.com/");
+ expect(hint.getLink()).toEqual("https://google.com/");
});
});
@@ -80,12 +83,12 @@ describe("LinkHint", () => {
let link = document.getElementById("test-link1") as HTMLAnchorElement;
let hint = new LinkHint(link, "abc");
- expect(hint.getLinkTarget()).to.be.null;
+ expect(hint.getLinkTarget()).toBeNull;
link = document.getElementById("test-link2") as HTMLAnchorElement;
hint = new LinkHint(link, "abc");
- expect(hint.getLinkTarget()).to.equal("_blank");
+ expect(hint.getLinkTarget()).toEqual("_blank");
});
});
@@ -104,7 +107,7 @@ describe("LinkHint", () => {
describe("InputHint", () => {
describe("#activate()", () => {
- context("<input>", () => {
+ describe("<input>", () => {
beforeEach(() => {
document.body.innerHTML = `<input id='test-input'></input>`;
});
@@ -114,11 +117,11 @@ describe("InputHint", () => {
const hint = new InputHint(input, "abc");
hint.activate();
- expect(document.activeElement).to.equal(input);
+ expect(document.activeElement).toEqual(input);
});
});
- context('<input type="checkbox">', () => {
+ describe('<input type="checkbox">', () => {
beforeEach(() => {
document.body.innerHTML = `<input type="checkbox" id='test-input'></input>`;
});
@@ -128,10 +131,10 @@ describe("InputHint", () => {
const hint = new InputHint(input, "abc");
hint.activate();
- expect(input.checked).to.be.true;
+ expect(input.checked).toBeTruthy;
});
});
- context("<textarea>", () => {
+ describe("<textarea>", () => {
beforeEach(() => {
document.body.innerHTML = `<textarea id='test-textarea'></textarea>`;
});
@@ -143,11 +146,11 @@ describe("InputHint", () => {
const hint = new InputHint(textarea, "abc");
hint.activate();
- expect(document.activeElement).to.equal(textarea);
+ expect(document.activeElement).toEqual(textarea);
});
});
- context("<button>", () => {
+ describe("<button>", () => {
beforeEach(() => {
document.body.innerHTML = `<button id='test-button'></button>`;
});
diff --git a/test/content/presenters/NavigationPresenter.test.ts b/test/content/presenters/NavigationPresenter.test.ts
index 8d003c4..0e51242 100644
--- a/test/content/presenters/NavigationPresenter.test.ts
+++ b/test/content/presenters/NavigationPresenter.test.ts
@@ -1,9 +1,10 @@
-import { NavigationPresenterImpl } from "../../../src/content/presenters/NavigationPresenter";
-import { expect } from "chai";
+/**
+ * @jest-environment jsdom
+ */
-describe("NavigationPresenterImpl", function () {
- this.timeout(5000);
+import { NavigationPresenterImpl } from "../../../src/content/presenters/NavigationPresenter";
+describe("NavigationPresenterImpl", () => {
let sut: NavigationPresenterImpl;
const testRel = (done: () => void, rel: string, html: string) => {
@@ -12,7 +13,7 @@ describe("NavigationPresenterImpl", function () {
document.body.innerHTML = html;
method();
setTimeout(() => {
- expect(document.location.hash).to.equal(`#${rel}`);
+ expect(document.location.hash).toEqual(`#${rel}`);
done();
}, 0);
};
@@ -21,7 +22,7 @@ describe("NavigationPresenterImpl", function () {
const testNext = (html: string) => (done: () => void) =>
testRel(done, "next", html);
- before(() => {
+ beforeEach(() => {
sut = new NavigationPresenterImpl();
});
diff --git a/test/content/repositories/AddonEnabledRepository.test.ts b/test/content/repositories/AddonEnabledRepository.test.ts
index 13dff76..692407c 100644
--- a/test/content/repositories/AddonEnabledRepository.test.ts
+++ b/test/content/repositories/AddonEnabledRepository.test.ts
@@ -1,14 +1,13 @@
import { AddonEnabledRepositoryImpl } from "../../../src/content/repositories/AddonEnabledRepository";
-import { expect } from "chai";
describe("AddonEnabledRepositoryImpl", () => {
it("updates and gets current value", () => {
const sut = new AddonEnabledRepositoryImpl();
sut.set(true);
- expect(sut.get()).to.be.true;
+ expect(sut.get()).toBeTruthy;
sut.set(false);
- expect(sut.get()).to.be.false;
+ expect(sut.get()).toBeFalsy;
});
});
diff --git a/test/content/repositories/FollowKeyRepository.test.ts b/test/content/repositories/FollowKeyRepository.test.ts
index 6608662..fa35a54 100644
--- a/test/content/repositories/FollowKeyRepository.test.ts
+++ b/test/content/repositories/FollowKeyRepository.test.ts
@@ -1,29 +1,28 @@
import FollowKeyRepository, {
FollowKeyRepositoryImpl,
} from "../../../src/content/repositories/FollowKeyRepository";
-import { expect } from "chai";
describe("FollowKeyRepositoryImpl", () => {
let sut: FollowKeyRepository;
- before(() => {
+ beforeEach(() => {
sut = new FollowKeyRepositoryImpl();
});
describe("#getKeys()/#pushKey()/#popKey()", () => {
it("enqueues keys", () => {
- expect(sut.getKeys()).to.be.empty;
+ expect(sut.getKeys()).toHaveLength(0);
sut.pushKey("a");
sut.pushKey("b");
sut.pushKey("c");
- expect(sut.getKeys()).to.deep.equal(["a", "b", "c"]);
+ expect(sut.getKeys()).toEqual(["a", "b", "c"]);
sut.popKey();
- expect(sut.getKeys()).to.deep.equal(["a", "b"]);
+ expect(sut.getKeys()).toEqual(["a", "b"]);
sut.clearKeys();
- expect(sut.getKeys()).to.be.empty;
+ expect(sut.getKeys()).toHaveLength(0);
});
});
});
diff --git a/test/content/repositories/FollowMasterRepository.test.ts b/test/content/repositories/FollowMasterRepository.test.ts
index 9b5e151..6a7d0ac 100644
--- a/test/content/repositories/FollowMasterRepository.test.ts
+++ b/test/content/repositories/FollowMasterRepository.test.ts
@@ -1,26 +1,25 @@
import FollowMasterRepository, {
FollowMasterRepositoryImpl,
} from "../../../src/content/repositories/FollowMasterRepository";
-import { expect } from "chai";
describe("FollowMasterRepositoryImpl", () => {
let sut: FollowMasterRepository;
- before(() => {
+ beforeEach(() => {
sut = new FollowMasterRepositoryImpl();
});
describe("#getTags()/#addTag()/#clearTags()", () => {
it("gets, adds and clears tags", () => {
- expect(sut.getTags()).to.be.empty;
+ expect(sut.getTags()).toHaveLength(0);
sut.addTag("a");
sut.addTag("b");
sut.addTag("c");
- expect(sut.getTags()).to.deep.equal(["a", "b", "c"]);
+ expect(sut.getTags()).toEqual(["a", "b", "c"]);
sut.clearTags();
- expect(sut.getTags()).to.be.empty;
+ expect(sut.getTags()).toHaveLength(0);
});
});
@@ -29,22 +28,22 @@ describe("FollowMasterRepositoryImpl", () => {
for (const tag of ["a", "aa", "ab", "b", "ba", "bb"]) {
sut.addTag(tag);
}
- expect(sut.getTagsByPrefix("a")).to.deep.equal(["a", "aa", "ab"]);
- expect(sut.getTagsByPrefix("aa")).to.deep.equal(["aa"]);
- expect(sut.getTagsByPrefix("b")).to.deep.equal(["b", "ba", "bb"]);
- expect(sut.getTagsByPrefix("c")).to.be.empty;
+ expect(sut.getTagsByPrefix("a")).toEqual(["a", "aa", "ab"]);
+ expect(sut.getTagsByPrefix("aa")).toEqual(["aa"]);
+ expect(sut.getTagsByPrefix("b")).toEqual(["b", "ba", "bb"]);
+ expect(sut.getTagsByPrefix("c")).toHaveLength(0);
});
});
describe("#setCurrentFollowMode()/#getCurrentNewTabMode()/#getCurrentBackgroundMode", () => {
it("updates and gets follow mode", () => {
sut.setCurrentFollowMode(false, true);
- expect(sut.getCurrentNewTabMode()).to.be.false;
- expect(sut.getCurrentBackgroundMode()).to.be.true;
+ expect(sut.getCurrentNewTabMode()).toBeFalsy;
+ expect(sut.getCurrentBackgroundMode()).toBeTruthy;
sut.setCurrentFollowMode(true, false);
- expect(sut.getCurrentNewTabMode()).to.be.true;
- expect(sut.getCurrentBackgroundMode()).to.be.false;
+ expect(sut.getCurrentNewTabMode()).toBeTruthy;
+ expect(sut.getCurrentBackgroundMode()).toBeFalsy;
});
});
});
diff --git a/test/content/repositories/FollowSlaveRepository.test.ts b/test/content/repositories/FollowSlaveRepository.test.ts
index 0f829b2..52ed3fc 100644
--- a/test/content/repositories/FollowSlaveRepository.test.ts
+++ b/test/content/repositories/FollowSlaveRepository.test.ts
@@ -1,24 +1,23 @@
import FollowSlaveRepository, {
FollowSlaveRepositoryImpl,
} from "../../../src/content/repositories/FollowSlaveRepository";
-import { expect } from "chai";
describe("FollowSlaveRepository", () => {
let sut: FollowSlaveRepository;
- before(() => {
+ beforeEach(() => {
sut = new FollowSlaveRepositoryImpl();
});
describe("#isFollowMode()/#enableFollowMode()/#disableFollowMode()", () => {
it("gets, adds updates follow mode", () => {
- expect(sut.isFollowMode()).to.be.false;
+ expect(sut.isFollowMode()).toBeFalsy;
sut.enableFollowMode();
- expect(sut.isFollowMode()).to.be.true;
+ expect(sut.isFollowMode()).toBeTruthy;
sut.disableFollowMode();
- expect(sut.isFollowMode()).to.be.false;
+ expect(sut.isFollowMode()).toBeFalsy;
});
});
});
diff --git a/test/content/repositories/KeymapRepository.test.ts b/test/content/repositories/KeymapRepository.test.ts
index 0e01a73..715187b 100644
--- a/test/content/repositories/KeymapRepository.test.ts
+++ b/test/content/repositories/KeymapRepository.test.ts
@@ -1,13 +1,12 @@
import KeymapRepository, {
KeymapRepositoryImpl,
} from "../../../src/content/repositories/KeymapRepository";
-import { expect } from "chai";
import Key from "../../../src/shared/settings/Key";
describe("KeymapRepositoryImpl", () => {
let sut: KeymapRepository;
- before(() => {
+ beforeEach(() => {
sut = new KeymapRepositoryImpl();
});
@@ -18,9 +17,9 @@ describe("KeymapRepositoryImpl", () => {
const sequence = sut.enqueueKey(Key.fromMapKey("c"));
const keys = sequence.keys;
- expect(keys[0].equals(Key.fromMapKey("a"))).to.be.true;
- expect(keys[1].equals(Key.fromMapKey("b"))).to.be.true;
- expect(keys[2].equals(Key.fromMapKey("c"))).to.be.true;
+ expect(keys[0].equals(Key.fromMapKey("a"))).toBeTruthy;
+ expect(keys[1].equals(Key.fromMapKey("b"))).toBeTruthy;
+ expect(keys[2].equals(Key.fromMapKey("c"))).toBeTruthy;
});
});
@@ -32,7 +31,7 @@ describe("KeymapRepositoryImpl", () => {
sut.clear();
const sequence = sut.enqueueKey(Key.fromMapKey("a"));
- expect(sequence.length()).to.equal(1);
+ expect(sequence.length()).toEqual(1);
});
});
});
diff --git a/test/content/repositories/MarkKeyRepository.test.ts b/test/content/repositories/MarkKeyRepository.test.ts
index 473b4dc..a722a9c 100644
--- a/test/content/repositories/MarkKeyRepository.test.ts
+++ b/test/content/repositories/MarkKeyRepository.test.ts
@@ -1,36 +1,35 @@
import MarkRepository, {
MarkKeyRepositoryImpl,
} from "../../../src/content/repositories/MarkKeyRepository";
-import { expect } from "chai";
describe("MarkKeyRepositoryImpl", () => {
let sut: MarkRepository;
- before(() => {
+ beforeEach(() => {
sut = new MarkKeyRepositoryImpl();
});
describe("#isSetMode/#enableSetMode/#disabeSetMode", () => {
it("enables and disables set mode", () => {
- expect(sut.isSetMode()).to.be.false;
+ expect(sut.isSetMode()).toBeFalsy;
sut.enableSetMode();
- expect(sut.isSetMode()).to.be.true;
+ expect(sut.isSetMode()).toBeTruthy;
sut.disabeSetMode();
- expect(sut.isSetMode()).to.be.false;
+ expect(sut.isSetMode()).toBeFalsy;
});
});
describe("#isJumpMode/#enableJumpMode/#disabeJumpMode", () => {
it("enables and disables jump mode", () => {
- expect(sut.isJumpMode()).to.be.false;
+ expect(sut.isJumpMode()).toBeFalsy;
sut.enableJumpMode();
- expect(sut.isJumpMode()).to.be.true;
+ expect(sut.isJumpMode()).toBeTruthy;
sut.disabeJumpMode();
- expect(sut.isJumpMode()).to.be.false;
+ expect(sut.isJumpMode()).toBeFalsy;
});
});
});
diff --git a/test/content/repositories/MarkRepository.test.ts b/test/content/repositories/MarkRepository.test.ts
index f2a7326..b4486a1 100644
--- a/test/content/repositories/MarkRepository.test.ts
+++ b/test/content/repositories/MarkRepository.test.ts
@@ -1,12 +1,11 @@
import { MarkRepositoryImpl } from "../../../src/content/repositories/MarkRepository";
-import { expect } from "chai";
describe("MarkRepositoryImpl", () => {
it("save and load marks", () => {
const sut = new MarkRepositoryImpl();
sut.set("a", { x: 10, y: 20 });
- expect(sut.get("a")).to.deep.equal({ x: 10, y: 20 });
- expect(sut.get("b")).to.be.null;
+ expect(sut.get("a")).toEqual({ x: 10, y: 20 });
+ expect(sut.get("b")).toBeNull;
});
});
diff --git a/test/content/repositories/SettingRepository.test.ts b/test/content/repositories/SettingRepository.test.ts
index 99247a9..409012a 100644
--- a/test/content/repositories/SettingRepository.test.ts
+++ b/test/content/repositories/SettingRepository.test.ts
@@ -1,5 +1,4 @@
import { SettingRepositoryImpl } from "../../../src/content/repositories/SettingRepository";
-import { expect } from "chai";
import Settings from "../../../src/shared/settings/Settings";
describe("SettingRepositoryImpl", () => {
@@ -25,6 +24,6 @@ describe("SettingRepositoryImpl", () => {
sut.set(settings);
const actual = sut.get();
- expect(actual.properties.hintchars).to.equal("abcd1234");
+ expect(actual.properties.hintchars).toEqual("abcd1234");
});
});
diff --git a/test/content/usecases/AddonEnabledUseCase.test.ts b/test/content/usecases/AddonEnabledUseCase.test.ts
index 8a614c5..3d4d667 100644
--- a/test/content/usecases/AddonEnabledUseCase.test.ts
+++ b/test/content/usecases/AddonEnabledUseCase.test.ts
@@ -1,7 +1,6 @@
import AddonEnabledRepository from "../../../src/content/repositories/AddonEnabledRepository";
import AddonEnabledUseCase from "../../../src/content/usecases/AddonEnabledUseCase";
import AddonIndicatorClient from "../../../src/content/client/AddonIndicatorClient";
-import { expect } from "chai";
import MockConsoleFramePresenter from "../operators/impls/MockConsoleFramePresenter";
class MockAddonEnabledRepository implements AddonEnabledRepository {
@@ -50,19 +49,19 @@ describe("AddonEnabledUseCase", () => {
it("store and indicate as enabled", async () => {
await sut.enable();
- expect(repository.get()).to.be.true;
- expect(indicator.enabled).to.be.true;
- expect(presenter.attached).to.be.true;
+ expect(repository.get()).toBeTruthy;
+ expect(indicator.enabled).toBeTruthy;
+ expect(presenter.attached).toBeTruthy;
});
});
- describe("#disable", async () => {
+ describe("#disable", () => {
it("store and indicate as disabled", async () => {
await sut.disable();
- expect(repository.get()).to.be.false;
- expect(indicator.enabled).to.be.false;
- expect(presenter.attached).to.be.false;
+ expect(repository.get()).toBeFalsy;
+ expect(indicator.enabled).toBeFalsy;
+ expect(presenter.attached).toBeFalsy;
});
});
@@ -71,27 +70,27 @@ describe("AddonEnabledUseCase", () => {
repository.set(true);
await sut.toggle();
- expect(repository.get()).to.be.false;
- expect(indicator.enabled).to.be.false;
- expect(presenter.attached).to.be.false;
+ expect(repository.get()).toBeFalsy;
+ expect(indicator.enabled).toBeFalsy;
+ expect(presenter.attached).toBeFalsy;
repository.set(false);
await sut.toggle();
- expect(repository.get()).to.be.true;
- expect(indicator.enabled).to.be.true;
- expect(presenter.attached).to.be.true;
+ expect(repository.get()).toBeTruthy;
+ expect(indicator.enabled).toBeTruthy;
+ expect(presenter.attached).toBeTruthy;
});
});
describe("#getEnabled", () => {
it("returns current addon enabled", () => {
repository.set(true);
- expect(sut.getEnabled()).to.be.true;
+ expect(sut.getEnabled()).toBeTruthy;
repository.set(false);
- expect(sut.getEnabled()).to.be.false;
+ expect(sut.getEnabled()).toBeFalsy;
});
});
});
diff --git a/test/content/usecases/HintKeyProducer.test.ts b/test/content/usecases/HintKeyProducer.test.ts
index 9d320b4..a4ad4de 100644
--- a/test/content/usecases/HintKeyProducer.test.ts
+++ b/test/content/usecases/HintKeyProducer.test.ts
@@ -1,5 +1,4 @@
import { HintKeyRepositoryImpl } from "../../../src/content/repositories/HintKeyRepository";
-import { expect } from "chai";
describe("HintKeyProducerImpl class", () => {
describe("#produce", () => {
@@ -27,7 +26,7 @@ describe("HintKeyProducerImpl class", () => {
const sut = new HintKeyRepositoryImpl();
sut.reset(charset);
for (let i = 0; i < sequences.length; ++i) {
- expect(sut.produce()).to.equal(sequences[i]);
+ expect(sut.produce()).toEqual(sequences[i]);
}
});
});
@@ -37,16 +36,16 @@ describe("HintKeyProducerImpl class", () => {
const sut = new HintKeyRepositoryImpl();
sut.reset("ab");
- expect(sut.produce()).to.equal("a");
- expect(sut.produce()).to.equal("b");
+ expect(sut.produce()).toEqual("a");
+ expect(sut.produce()).toEqual("b");
sut.reset("xy");
- expect(sut.produce()).to.equal("x");
- expect(sut.produce()).to.equal("y");
+ expect(sut.produce()).toEqual("x");
+ expect(sut.produce()).toEqual("y");
});
it("throws an exception on empty charset", () => {
const sut = new HintKeyRepositoryImpl();
- expect(() => sut.reset("")).to.throw(TypeError);
+ expect(() => sut.reset("")).toThrow(TypeError);
});
});
});
diff --git a/test/content/usecases/KeymapUseCase.test.ts b/test/content/usecases/KeymapUseCase.test.ts
index 24ac6d8..7af3ab2 100644
--- a/test/content/usecases/KeymapUseCase.test.ts
+++ b/test/content/usecases/KeymapUseCase.test.ts
@@ -1,6 +1,5 @@
import "reflect-metadata";
import KeymapUseCase from "../../../src/content/usecases/KeymapUseCase";
-import { expect } from "chai";
import SettingRepository from "../../../src/content/repositories/SettingRepository";
import Settings from "../../../src/shared/settings/Settings";
import AddonEnabledRepository from "../../../src/content/repositories/AddonEnabledRepository";
@@ -41,7 +40,7 @@ class MockAddressRepository implements AddressRepository {
}
describe("KeymapUseCase", () => {
- context("with no-digis keymaps", () => {
+ describe("with no-digis keymaps", () => {
const settings = Settings.fromJSON({
keymaps: {
k: { type: "scroll.vertically", count: -1 },
@@ -52,7 +51,7 @@ describe("KeymapUseCase", () => {
let sut: KeymapUseCase;
- before(() => {
+ beforeEach(() => {
sut = new KeymapUseCase(
new KeymapRepositoryImpl(),
new MockSettingRepository(settings),
@@ -62,34 +61,34 @@ describe("KeymapUseCase", () => {
});
it("returns matched operation", () => {
- expect(sut.nextOps(Key.fromMapKey("k"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("k"))).toEqual({
repeat: 1,
op: { type: "scroll.vertically", count: -1 },
});
- expect(sut.nextOps(Key.fromMapKey("j"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("j"))).toEqual({
repeat: 1,
op: { type: "scroll.vertically", count: 1 },
});
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toEqual({
repeat: 1,
op: { type: "scroll.top" },
});
- expect(sut.nextOps(Key.fromMapKey("z"))).to.be.null;
+ expect(sut.nextOps(Key.fromMapKey("z"))).toBeNull;
});
it("repeats n-times by numeric prefix and multiple key operations", () => {
- expect(sut.nextOps(Key.fromMapKey("1"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("0"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("1"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("0"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toEqual({
repeat: 10,
op: { type: "scroll.top" },
});
});
});
- context("when keymaps containing numeric mappings", () => {
+ describe("when keymaps containing numeric mappings", () => {
const settings = Settings.fromJSON({
keymaps: {
20: { type: "scroll.top" },
@@ -99,7 +98,7 @@ describe("KeymapUseCase", () => {
let sut: KeymapUseCase;
- before(() => {
+ beforeEach(() => {
sut = new KeymapUseCase(
new KeymapRepositoryImpl(),
new MockSettingRepository(settings),
@@ -109,43 +108,43 @@ describe("KeymapUseCase", () => {
});
it("returns the matched operation ends with digit", () => {
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("5"))).to.be.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("5"))).toEqual({
repeat: 1,
op: { type: "scroll.bottom" },
});
});
it("returns an operation matched the operation with digit keymaps", () => {
- expect(sut.nextOps(Key.fromMapKey("2"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("0"))).to.be.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("2"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("0"))).toEqual({
repeat: 1,
op: { type: "scroll.top" },
});
});
it("returns operations repeated by numeric prefix", () => {
- expect(sut.nextOps(Key.fromMapKey("2"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("5"))).to.be.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("2"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("5"))).toEqual({
repeat: 2,
op: { type: "scroll.bottom" },
});
});
it("does not matches with digit operation with numeric prefix", () => {
- expect(sut.nextOps(Key.fromMapKey("3"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("2"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("0"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("5"))).to.be.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("3"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("2"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("0"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("5"))).toEqual({
repeat: 320,
op: { type: "scroll.bottom" },
});
});
});
- context("when the keys are mismatched with the operations", () => {
+ describe("when the keys are mismatched with the operations", () => {
const settings = Settings.fromJSON({
keymaps: {
gg: { type: "scroll.top" },
@@ -155,7 +154,7 @@ describe("KeymapUseCase", () => {
let sut: KeymapUseCase;
- before(() => {
+ beforeEach(() => {
sut = new KeymapUseCase(
new KeymapRepositoryImpl(),
new MockSettingRepository(settings),
@@ -165,31 +164,31 @@ describe("KeymapUseCase", () => {
});
it("clears input keys with no-matched operations", () => {
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("x"))).to.be.null; // clear
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("x"))).toBeNull; // clear
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toEqual({
repeat: 1,
op: { type: "scroll.top" },
});
});
it("clears input keys and the prefix with no-matched operations", () => {
- expect(sut.nextOps(Key.fromMapKey("1"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("0"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("x"))).to.be.null; // clear
- expect(sut.nextOps(Key.fromMapKey("1"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("0"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("1"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("0"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("x"))).toBeNull; // clear
+ expect(sut.nextOps(Key.fromMapKey("1"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("0"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toEqual({
repeat: 10,
op: { type: "scroll.top" },
});
});
});
- context("when the site matches to the blacklist", () => {
+ describe("when the site matches to the blacklist", () => {
const settings = Settings.fromJSON({
keymaps: {
k: { type: "scroll.vertically", count: -1 },
@@ -200,7 +199,7 @@ describe("KeymapUseCase", () => {
let sut: KeymapUseCase;
- before(() => {
+ beforeEach(() => {
sut = new KeymapUseCase(
new KeymapRepositoryImpl(),
new MockSettingRepository(settings),
@@ -210,19 +209,19 @@ describe("KeymapUseCase", () => {
});
it("returns only ADDON_ENABLE and ADDON_TOGGLE_ENABLED operation", () => {
- expect(sut.nextOps(Key.fromMapKey("k"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("a"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("k"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("a"))).toEqual({
repeat: 1,
op: { type: "addon.enable" },
});
- expect(sut.nextOps(Key.fromMapKey("b"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("b"))).toEqual({
repeat: 1,
op: { type: "addon.toggle.enabled" },
});
});
});
- context("when the site matches to the partial blacklist", () => {
+ describe("when the site matches to the partial blacklist", () => {
const settings = Settings.fromJSON({
keymaps: {
k: { type: "scroll.vertically", count: -1 },
@@ -244,17 +243,17 @@ describe("KeymapUseCase", () => {
new MockAddressRepository(new URL("https://example.com"))
);
- expect(sut.nextOps(Key.fromMapKey("k"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("k"))).toEqual({
repeat: 1,
op: { type: "scroll.vertically", count: -1 },
});
- expect(sut.nextOps(Key.fromMapKey("j"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("j"))).toEqual({
repeat: 1,
op: { type: "scroll.vertically", count: 1 },
});
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("G"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("G"))).toEqual({
repeat: 1,
op: { type: "scroll.bottom" },
});
@@ -266,12 +265,12 @@ describe("KeymapUseCase", () => {
new MockAddressRepository(new URL("https://example.org"))
);
- expect(sut.nextOps(Key.fromMapKey("g"))).to.be.null;
- expect(sut.nextOps(Key.fromMapKey("g"))).to.deep.equal({
+ expect(sut.nextOps(Key.fromMapKey("g"))).toBeNull;
+ expect(sut.nextOps(Key.fromMapKey("g"))).toEqual({
repeat: 1,
op: { type: "scroll.top" },
});
- expect(sut.nextOps(Key.fromMapKey("G"))).to.be.null;
+ expect(sut.nextOps(Key.fromMapKey("G"))).toBeNull;
});
});
});
diff --git a/test/content/usecases/MarkUseCase.test.ts b/test/content/usecases/MarkUseCase.test.ts
index df3f7bf..b788c3c 100644
--- a/test/content/usecases/MarkUseCase.test.ts
+++ b/test/content/usecases/MarkUseCase.test.ts
@@ -5,7 +5,6 @@ import MarkClient from "../../../src/content/client/MarkClient";
import MockConsoleClient from "../mock/MockConsoleClient";
import MockScrollPresenter from "../mock/MockScrollPresenter";
import Mark from "../../../src/content/domains/Mark";
-import { expect } from "chai";
class MockMarkRepository implements MarkRepository {
private current: { [key: string]: Mark };
@@ -70,8 +69,8 @@ describe("MarkUseCase", () => {
await sut.set("x");
- expect(repository.get("x")).to.deep.equals({ x: 10, y: 20 });
- expect(consoleClient.text).to.equal("Set local mark to 'x'");
+ expect(repository.get("x")).toEqual({ x: 10, y: 20 });
+ expect(consoleClient.text).toEqual("Set local mark to 'x'");
});
it("sets global mark", async () => {
@@ -79,8 +78,8 @@ describe("MarkUseCase", () => {
await sut.set("Z");
- expect(client.marks["Z"]).to.deep.equals({ x: 30, y: 40 });
- expect(consoleClient.text).to.equal("Set global mark to 'Z'");
+ expect(client.marks["Z"]).toEqual({ x: 30, y: 40 });
+ expect(consoleClient.text).toEqual("Set global mark to 'Z'");
});
});
@@ -90,7 +89,7 @@ describe("MarkUseCase", () => {
await sut.jump("x");
- expect(scrollPresenter.getScroll()).to.deep.equals({ x: 20, y: 40 });
+ expect(scrollPresenter.getScroll()).toEqual({ x: 20, y: 40 });
});
it("throws an error when no local marks", () => {
@@ -100,7 +99,7 @@ describe("MarkUseCase", () => {
throw new Error("error");
})
.catch((e) => {
- expect(e).to.be.instanceof(Error);
+ expect(e).toBeInstanceOf(Error);
});
});
@@ -109,7 +108,7 @@ describe("MarkUseCase", () => {
await sut.jump("Z");
- expect(client.last).to.equal("Z");
+ expect(client.last).toEqual("Z");
});
});
});
diff --git a/test/content/usecases/SettingUseCaase.test.ts b/test/content/usecases/SettingUseCaase.test.ts
index 1cc1e8a..8339bd9 100644
--- a/test/content/usecases/SettingUseCaase.test.ts
+++ b/test/content/usecases/SettingUseCaase.test.ts
@@ -4,7 +4,6 @@ import SettingUseCase from "../../../src/content/usecases/SettingUseCase";
import Settings, {
DefaultSetting,
} from "../../../src/shared/settings/Settings";
-import { expect } from "chai";
class MockSettingRepository implements SettingRepository {
private current: Settings;
@@ -64,10 +63,10 @@ describe("AddonEnabledUseCase", () => {
describe("#reload", () => {
it("loads settings and store to repository", async () => {
const settings = await sut.reload();
- expect(settings.properties.hintchars).to.equal("abcd1234");
+ expect(settings.properties.hintchars).toEqual("abcd1234");
const saved = repository.get();
- expect(saved.properties.hintchars).to.equal("abcd1234");
+ expect(saved.properties.hintchars).toEqual("abcd1234");
});
});
});
diff --git a/test/settings/components/form/BlacklistForm.test.tsx b/test/settings/components/form/BlacklistForm.test.tsx
index 8727c59..bd1a1e8 100644
--- a/test/settings/components/form/BlacklistForm.test.tsx
+++ b/test/settings/components/form/BlacklistForm.test.tsx
@@ -1,8 +1,11 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestRenderer from "react-test-renderer";
import ReactTestUtils from "react-dom/test-utils";
-import { expect } from "chai";
import BlacklistForm from "../../../../src/settings/components/form/BlacklistForm";
import Blacklist from "../../../../src/shared/settings/Blacklist";
@@ -20,15 +23,15 @@ describe("settings/form/BlacklistForm", () => {
const rows = root
.findAllByType("div")
.filter((instance) => instance.props.role === "listitem");
- expect(rows).to.have.lengthOf(2);
- expect(rows[0].findByProps({ name: "url" }).props.value).to.equal(
+ expect(rows).toHaveLength(2);
+ expect(rows[0].findByProps({ name: "url" }).props.value).toEqual(
"*.slack.com"
);
- expect(rows[1].findByProps({ name: "url" }).props.value).to.equal(
+ expect(rows[1].findByProps({ name: "url" }).props.value).toEqual(
"www.google.com/maps"
);
- expect(() => root.findByType(AddButton)).not.throw();
+ expect(() => root.findByType(AddButton)).not.toThrow();
});
it("renders blank value", () => {
@@ -37,7 +40,7 @@ describe("settings/form/BlacklistForm", () => {
const rows = root.findAllByProps({
className: "form-blacklist-form-row",
});
- expect(rows).to.be.empty;
+ expect(rows).toHaveLength(0);
});
});
@@ -60,10 +63,7 @@ describe("settings/form/BlacklistForm", () => {
value={Blacklist.fromJSON(["*.slack.com", "www.google.com/maps*"])}
onChange={(value) => {
const urls = value.items.map((item) => item.pattern);
- expect(urls).to.have.members([
- "gitter.im",
- "www.google.com/maps*",
- ]);
+ expect(urls).toEqual(["gitter.im", "www.google.com/maps*"]);
done();
}}
/>,
@@ -85,7 +85,7 @@ describe("settings/form/BlacklistForm", () => {
value={Blacklist.fromJSON(["*.slack.com", "www.google.com/maps*"])}
onChange={(value) => {
const urls = value.items.map((item) => item.pattern);
- expect(urls).to.have.members(["www.google.com/maps*"]);
+ expect(urls).toEqual(["www.google.com/maps*"]);
done();
}}
/>,
@@ -104,7 +104,7 @@ describe("settings/form/BlacklistForm", () => {
value={Blacklist.fromJSON(["*.slack.com"])}
onChange={(value) => {
const urls = value.items.map((item) => item.pattern);
- expect(urls).to.have.members(["*.slack.com", ""]);
+ expect(urls).toEqual(["*.slack.com", ""]);
done();
}}
/>,
diff --git a/test/settings/components/form/KeymapsForm.test.tsx b/test/settings/components/form/KeymapsForm.test.tsx
index 1cec889..4701a96 100644
--- a/test/settings/components/form/KeymapsForm.test.tsx
+++ b/test/settings/components/form/KeymapsForm.test.tsx
@@ -1,10 +1,13 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestRenderer from "react-test-renderer";
import ReactTestUtils from "react-dom/test-utils";
import KeymapsForm from "../../../../src/settings/components/form/KeymapsForm";
import { FormKeymaps } from "../../../../src/shared/SettingData";
-import { expect } from "chai";
describe("settings/form/KeymapsForm", () => {
describe("render", () => {
@@ -21,8 +24,8 @@ describe("settings/form/KeymapsForm", () => {
const inputj = root.findByProps({ id: 'scroll.vertically?{"count":1}' });
const inputk = root.findByProps({ id: 'scroll.vertically?{"count":-1}' });
- expect(inputj.props.value).to.equal("j");
- expect(inputk.props.value).to.equal("k");
+ expect(inputj.props.value).toEqual("j");
+ expect(inputk.props.value).toEqual("k");
});
it("renders blank value", () => {
@@ -31,8 +34,8 @@ describe("settings/form/KeymapsForm", () => {
const inputj = root.findByProps({ id: 'scroll.vertically?{"count":1}' });
const inputk = root.findByProps({ id: 'scroll.vertically?{"count":-1}' });
- expect(inputj.props.value).to.be.empty;
- expect(inputk.props.value).to.be.empty;
+ expect(inputj.props.value).toHaveLength(0);
+ expect(inputk.props.value).toHaveLength(0);
});
});
@@ -57,7 +60,7 @@ describe("settings/form/KeymapsForm", () => {
'scroll.vertically?{"count":-1}': "k",
})}
onChange={(value) => {
- expect(value.toJSON()['scroll.vertically?{"count":1}']).to.equal(
+ expect(value.toJSON()['scroll.vertically?{"count":1}']).toEqual(
"jjj"
);
done();
diff --git a/test/settings/components/form/PropertiesForm.test.tsx b/test/settings/components/form/PropertiesForm.test.tsx
index acf02b8..0b481ab 100644
--- a/test/settings/components/form/PropertiesForm.test.tsx
+++ b/test/settings/components/form/PropertiesForm.test.tsx
@@ -1,9 +1,12 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestRenderer from "react-test-renderer";
import ReactTestUtils from "react-dom/test-utils";
import PropertiesForm from "../../../../src/settings/components/form/PropertiesForm";
-import { expect } from "chai";
describe("settings/form/PropertiesForm", () => {
describe("render", () => {
@@ -25,16 +28,16 @@ describe("settings/form/PropertiesForm", () => {
).root;
let input = root.findByProps({ name: "mystr" });
- expect(input.props.type).to.equals("text");
- expect(input.props.value).to.equal("abc");
+ expect(input.props.type).toEqual("text");
+ expect(input.props.value).toEqual("abc");
input = root.findByProps({ name: "mynum" });
- expect(input.props.type).to.equals("number");
- expect(input.props.value).to.equal(123);
+ expect(input.props.type).toEqual("number");
+ expect(input.props.value).toEqual(123);
input = root.findByProps({ name: "mybool" });
- expect(input.props.type).to.equals("checkbox");
- expect(input.props.value).to.equal(true);
+ expect(input.props.type).toEqual("checkbox");
+ expect(input.props.value).toEqual(true);
});
});
@@ -57,7 +60,7 @@ describe("settings/form/PropertiesForm", () => {
types={{ myvalue: "string" }}
value={{ myvalue: "abc" }}
onChange={(value) => {
- expect(value).to.have.property("myvalue", "abcd");
+ expect(value).toHaveProperty("myvalue", "abcd");
done();
}}
/>,
@@ -79,7 +82,7 @@ describe("settings/form/PropertiesForm", () => {
types={{ myvalue: "number" }}
value={{ "": 123 }}
onChange={(value) => {
- expect(value).to.have.property("myvalue", 1234);
+ expect(value).toHaveProperty("myvalue", 1234);
done();
}}
/>,
@@ -101,7 +104,7 @@ describe("settings/form/PropertiesForm", () => {
types={{ myvalue: "boolean" }}
value={{ myvalue: false }}
onChange={(value) => {
- expect(value).to.have.property("myvalue", true);
+ expect(value).toHaveProperty("myvalue", true);
done();
}}
/>,
diff --git a/test/settings/components/form/SearchEngineForm.test.tsx b/test/settings/components/form/SearchEngineForm.test.tsx
index 7b10274..8b84e12 100644
--- a/test/settings/components/form/SearchEngineForm.test.tsx
+++ b/test/settings/components/form/SearchEngineForm.test.tsx
@@ -1,10 +1,13 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestRenderer from "react-test-renderer";
import ReactTestUtils from "react-dom/test-utils";
import SearchForm from "../../../../src/settings/components/form/SearchForm";
import { FormSearch } from "../../../../src/shared/SettingData";
-import { expect } from "chai";
describe("settings/form/SearchForm", () => {
describe("render", () => {
@@ -24,16 +27,16 @@ describe("settings/form/SearchForm", () => {
const names = root
.findAllByType("input")
.filter((instance) => instance.props.name === "name");
- expect(names).to.have.lengthOf(2);
- expect(names[0].props.value).to.equal("google");
- expect(names[1].props.value).to.equal("yahoo");
+ expect(names).toHaveLength(2);
+ expect(names[0].props.value).toEqual("google");
+ expect(names[1].props.value).toEqual("yahoo");
const urls = root
.findAllByType("input")
.filter((instance) => instance.props.name === "url");
- expect(urls).to.have.lengthOf(2);
- expect(urls[0].props.value).to.equal("google.com");
- expect(urls[1].props.value).to.equal("yahoo.com");
+ expect(urls).toHaveLength(2);
+ expect(urls[0].props.value).toEqual("google.com");
+ expect(urls[1].props.value).toEqual("yahoo.com");
});
});
@@ -62,9 +65,9 @@ describe("settings/form/SearchForm", () => {
})}
onChange={(value) => {
const json = value.toJSON();
- expect(json.default).to.equal("louvre");
- expect(json.engines).to.have.lengthOf(2);
- expect(json.engines).to.have.deep.members([
+ expect(json.default).toEqual("louvre");
+ expect(json.engines).toHaveLength(2);
+ expect(json.engines).toEqual([
["louvre", "google.com"],
["yahoo", "yahoo.com"],
]);
@@ -101,11 +104,9 @@ describe("settings/form/SearchForm", () => {
})}
onChange={(value) => {
const json = value.toJSON();
- expect(json.default).to.equal("yahoo");
- expect(json.engines).to.have.lengthOf(1);
- expect(json.engines).to.have.deep.members([
- ["yahoo", "yahoo.com"],
- ]);
+ expect(json.default).toEqual("yahoo");
+ expect(json.engines).toHaveLength(1);
+ expect(json.engines).toEqual([["yahoo", "yahoo.com"]]);
done();
}}
/>,
@@ -129,9 +130,9 @@ describe("settings/form/SearchForm", () => {
})}
onChange={(value) => {
const json = value.toJSON();
- expect(json.default).to.equal("yahoo");
- expect(json.engines).to.have.lengthOf(2);
- expect(json.engines).to.have.deep.members([
+ expect(json.default).toEqual("yahoo");
+ expect(json.engines).toHaveLength(2);
+ expect(json.engines).toEqual([
["google", "google.com"],
["", ""],
]);
diff --git a/test/settings/components/ui/Radio.test.tsx b/test/settings/components/ui/Radio.test.tsx
index f929ee3..e2bf214 100644
--- a/test/settings/components/ui/Radio.test.tsx
+++ b/test/settings/components/ui/Radio.test.tsx
@@ -1,8 +1,11 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestUtils from "react-dom/test-utils";
import Radio from "../../../../src/settings/components/ui/Radio";
-import { expect } from "chai";
describe("settings/ui/Radio", () => {
let container: HTMLDivElement;
@@ -26,10 +29,10 @@ describe("settings/ui/Radio", () => {
const label = document.querySelector("label")!;
const input = document.querySelector("input")!;
- expect(label.textContent).to.contain("myfield");
- expect(input.type).to.contain("radio");
- expect(input.name).to.contain("myradio");
- expect(input.value).to.contain("myvalue");
+ expect(label.textContent).toEqual("myfield");
+ expect(input.type).toEqual("radio");
+ expect(input.name).toEqual("myradio");
+ expect(input.value).toEqual("myvalue");
});
it("invoke onChange", (done) => {
@@ -41,7 +44,7 @@ describe("settings/ui/Radio", () => {
label="myfield"
value="myvalue"
onChange={(e) => {
- expect((e.target as HTMLInputElement).checked).to.be.true;
+ expect((e.target as HTMLInputElement).checked).toBeTruthy;
done();
}}
/>,
diff --git a/test/settings/components/ui/Text.test.tsx b/test/settings/components/ui/Text.test.tsx
index d5451bb..a8e0bf9 100644
--- a/test/settings/components/ui/Text.test.tsx
+++ b/test/settings/components/ui/Text.test.tsx
@@ -1,8 +1,11 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestUtils from "react-dom/test-utils";
import Text from "../../../../src/settings/components/ui/Text";
-import { expect } from "chai";
describe("settings/ui/Text", () => {
let container: HTMLDivElement;
@@ -26,10 +29,10 @@ describe("settings/ui/Text", () => {
const label = document.querySelector("label")!;
const input = document.querySelector("input")!;
- expect(label.textContent).to.contain("myfield");
- expect(input.type).to.contain("text");
- expect(input.name).to.contain("myname");
- expect(input.value).to.contain("myvalue");
+ expect(label.textContent?.includes("myfield")).toBeTruthy;
+ expect(input.type).toEqual("text");
+ expect(input.name).toEqual("myname");
+ expect(input.value).toEqual("myvalue");
});
it("invoke onChange", (done) => {
@@ -40,7 +43,7 @@ describe("settings/ui/Text", () => {
label="myfield"
value="myvalue"
onChange={(e) => {
- expect((e.target as HTMLInputElement).value).to.equal("newvalue");
+ expect((e.target as HTMLInputElement).value).toEqual("newvalue");
done();
}}
/>,
diff --git a/test/settings/components/ui/TextArea.test.tsx b/test/settings/components/ui/TextArea.test.tsx
index 232c7c0..76caec2 100644
--- a/test/settings/components/ui/TextArea.test.tsx
+++ b/test/settings/components/ui/TextArea.test.tsx
@@ -1,8 +1,11 @@
+/**
+ * @jest-environment jsdom
+ */
+
import React from "react";
import ReactDOM from "react-dom";
import ReactTestUtils from "react-dom/test-utils";
import TextArea from "../../../../src/settings/components/ui/TextArea";
-import { expect } from "chai";
describe("settings/ui/TextArea", () => {
let container: HTMLDivElement;
@@ -20,7 +23,6 @@ describe("settings/ui/TextArea", () => {
ReactTestUtils.act(() => {
ReactDOM.render(
<TextArea
- type="textarea"
name="myname"
label="myfield"
value="myvalue"
@@ -33,11 +35,11 @@ describe("settings/ui/TextArea", () => {
const label = document.querySelector("label")!;
const textarea = document.querySelector("textarea")!;
const error = document.querySelector("[role=alert]")!;
- expect(label.textContent).to.contain("myfield");
- expect(textarea.nodeName).to.contain("TEXTAREA");
- expect(textarea.name).to.contain("myname");
- expect(textarea.value).to.contain("myvalue");
- expect(error.textContent).to.contain("myerror");
+ expect(label.textContent).toEqual("myfield");
+ expect(textarea.nodeName).toEqual("TEXTAREA");
+ expect(textarea.name).toEqual("myname");
+ expect(textarea.value).toEqual("myvalue");
+ expect(error.textContent).toEqual("myerror");
});
it("invoke onChange", (done) => {
@@ -48,7 +50,7 @@ describe("settings/ui/TextArea", () => {
label="myfield"
value="myvalue"
onChange={(e) => {
- expect((e.target as HTMLInputElement).value).to.equal("newvalue");
+ expect((e.target as HTMLTextAreaElement).value).toEqual("newvalue");
done();
}}
/>,
diff --git a/test/settings/reducers/setting.test.ts b/test/settings/reducers/setting.test.ts
index 34e76e2..85b55ee 100644
--- a/test/settings/reducers/setting.test.ts
+++ b/test/settings/reducers/setting.test.ts
@@ -1,6 +1,5 @@
import * as actions from "../../../src/settings/actions";
import settingReducer from "../../../src/settings/reducers/setting";
-import { expect } from "chai";
import {
FormSettings,
JSONTextSettings,
@@ -11,8 +10,8 @@ import { DefaultSetting } from "../../../src/shared/settings/Settings";
describe("settings setting reducer", () => {
it("return the initial state", () => {
const state = settingReducer(undefined, {} as any);
- expect(state).to.have.deep.property("source", "json");
- expect(state).to.have.deep.property("error", "");
+ expect(state).toHaveProperty("source", "json");
+ expect(state).toHaveProperty("error", "");
});
it("return next state for SETTING_SET_SETTINGS", () => {
@@ -23,9 +22,9 @@ describe("settings setting reducer", () => {
form: FormSettings.fromSettings(DefaultSetting),
};
const state = settingReducer(undefined, action);
- expect(state.source).to.equal("json");
- expect(state.json!.toJSONText()).to.equal('{ "key": "value" }');
- expect(state.form).to.deep.equal(action.form);
+ expect(state.source).toEqual("json");
+ expect(state.json!.toJSONText()).toEqual('{ "key": "value" }');
+ expect(state.form).toEqual(action.form);
});
it("return next state for SETTING_SHOW_ERROR", () => {
@@ -35,8 +34,8 @@ describe("settings setting reducer", () => {
json: JSONTextSettings.fromText("{}"),
};
const state = settingReducer(undefined, action);
- expect(state.error).to.equal("bad value");
- expect(state.json!.toJSONText()).to.equal("{}");
+ expect(state.error).toEqual("bad value");
+ expect(state.json!.toJSONText()).toEqual("{}");
});
it("return next state for SETTING_SWITCH_TO_FORM", () => {
@@ -45,8 +44,8 @@ describe("settings setting reducer", () => {
form: FormSettings.fromSettings(DefaultSetting),
};
const state = settingReducer(undefined, action);
- expect(state.form).to.deep.equal(action.form);
- expect(state.source).to.equal("form");
+ expect(state.form).toEqual(action.form);
+ expect(state.source).toEqual("form");
});
it("return next state for SETTING_SWITCH_TO_JSON", () => {
@@ -55,7 +54,7 @@ describe("settings setting reducer", () => {
json: JSONTextSettings.fromText("{}"),
};
const state = settingReducer(undefined, action);
- expect(state.json!.toJSONText()).to.equal("{}");
- expect(state.source).to.equal(SettingSource.JSON);
+ expect(state.json!.toJSONText()).toEqual("{}");
+ expect(state.source).toEqual(SettingSource.JSON);
});
});
diff --git a/test/shared/SettingData.test.ts b/test/shared/SettingData.test.ts
index 3cfd5c9..f2c4aa9 100644
--- a/test/shared/SettingData.test.ts
+++ b/test/shared/SettingData.test.ts
@@ -4,7 +4,6 @@ import SettingData, {
FormSettings,
} from "../../src/shared/SettingData";
import Settings from "../../src/shared/settings/Settings";
-import { expect } from "chai";
import Keymaps from "../../src/shared/settings/Keymaps";
import ColorScheme from "../../src/shared/ColorScheme";
@@ -18,7 +17,7 @@ describe("shared/SettingData", () => {
};
const keymaps = FormKeymaps.fromJSON(data).toKeymaps().toJSON();
- expect(keymaps).to.deep.equal({
+ expect(keymaps).toEqual({
j: { type: "scroll.vertically", count: 1 },
"0": { type: "scroll.home" },
});
@@ -33,7 +32,7 @@ describe("shared/SettingData", () => {
});
const form = FormKeymaps.fromKeymaps(keymaps).toJSON();
- expect(form).to.deep.equal({
+ expect(form).toEqual({
'scroll.vertically?{"count":1}': "j",
"scroll.home": "0",
});
@@ -62,7 +61,7 @@ describe("shared/SettingData", () => {
}`;
const settings = JSONTextSettings.fromText(o).toSettings();
- expect(settings.toJSON()).to.deep.equal(JSON.parse(o));
+ expect(settings.toJSON()).toEqual(JSON.parse(o));
});
});
@@ -85,7 +84,7 @@ describe("shared/SettingData", () => {
});
const json = JSONTextSettings.fromSettings(o).toJSONText();
- expect(JSON.parse(json)).to.deep.equal(o.toJSON());
+ expect(JSON.parse(json)).toEqual(o.toJSON());
});
});
});
@@ -112,7 +111,7 @@ describe("shared/SettingData", () => {
};
const settings = FormSettings.fromJSON(data).toSettings();
- expect(settings.toJSON()).to.deep.equal({
+ expect(settings.toJSON()).toEqual({
keymaps: {
j: { type: "scroll.vertically", count: 1 },
"0": { type: "scroll.home" },
@@ -157,7 +156,7 @@ describe("shared/SettingData", () => {
});
const json = FormSettings.fromSettings(data).toJSON();
- expect(json).to.deep.equal({
+ expect(json).toEqual({
keymaps: {
'scroll.vertically?{"count":1}': "j",
"scroll.home": "0",
@@ -202,8 +201,8 @@ describe("shared/SettingData", () => {
};
const j = SettingData.fromJSON(data).toJSON();
- expect(j.source).to.equal("json");
- expect(j.json).to.be.a("string");
+ expect(j.source).toEqual("json");
+ expect(typeof j.json).toEqual("string");
});
it("parse object from form source", () => {
@@ -226,8 +225,8 @@ describe("shared/SettingData", () => {
};
const j = SettingData.fromJSON(data).toJSON();
- expect(j.source).to.equal("form");
- expect(j.form).to.deep.equal({
+ expect(j.source).toEqual("form");
+ expect(j.form).toEqual({
keymaps: {},
search: {
default: "yahoo",
@@ -266,7 +265,7 @@ describe("shared/SettingData", () => {
};
const settings = SettingData.fromJSON(data).toSettings();
- expect(settings.search.defaultEngine).to.equal("google");
+ expect(settings.search.defaultEngine).toEqual("google");
});
it("parse object from form source", () => {
@@ -288,7 +287,7 @@ describe("shared/SettingData", () => {
};
const settings = SettingData.fromJSON(data).toSettings();
- expect(settings.search.defaultEngine).to.equal("yahoo");
+ expect(settings.search.defaultEngine).toEqual("yahoo");
});
});
});
diff --git a/test/shared/operations.test.ts b/test/shared/operations.test.ts
index 449b25e..9fa9e19 100644
--- a/test/shared/operations.test.ts
+++ b/test/shared/operations.test.ts
@@ -1,5 +1,4 @@
import * as operations from "../../src/shared/operations";
-import { expect } from "chai";
describe("operations", () => {
describe("#valueOf", () => {
@@ -8,8 +7,8 @@ describe("operations", () => {
type: operations.SCROLL_VERTICALLY,
count: 10,
}) as operations.ScrollVerticallyOperation;
- expect(op.type).to.equal(operations.SCROLL_VERTICALLY);
- expect(op.count).to.equal(10);
+ expect(op.type).toEqual(operations.SCROLL_VERTICALLY);
+ expect(op.count).toEqual(10);
});
it("throws an Error on missing required parameter", () => {
@@ -17,7 +16,7 @@ describe("operations", () => {
operations.valueOf({
type: operations.SCROLL_VERTICALLY,
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
});
it("fills default valus of optional parameter", () => {
@@ -25,8 +24,8 @@ describe("operations", () => {
type: operations.COMMAND_SHOW_OPEN,
}) as operations.CommandShowOpenOperation;
- expect(op.type).to.equal(operations.COMMAND_SHOW_OPEN);
- expect(op.alter).to.be.false;
+ expect(op.type).toEqual(operations.COMMAND_SHOW_OPEN);
+ expect(op.alter).toBeFalsy;
});
it("throws an Error on mismatch of parameter", () => {
@@ -35,14 +34,14 @@ describe("operations", () => {
type: operations.SCROLL_VERTICALLY,
count: "10",
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
expect(() =>
operations.valueOf({
type: operations.COMMAND_SHOW_OPEN,
alter: "true",
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
});
});
});
diff --git a/test/shared/settings/Blacklist.test.ts b/test/shared/settings/Blacklist.test.ts
index 1ccb32a..af7b946 100644
--- a/test/shared/settings/Blacklist.test.ts
+++ b/test/shared/settings/Blacklist.test.ts
@@ -1,15 +1,14 @@
import Blacklist, {
BlacklistItem,
} from "../../../src/shared/settings/Blacklist";
-import { expect } from "chai";
import Key from "../../../src/shared/settings/Key";
describe("BlacklistItem", () => {
describe("#fromJSON", () => {
it("parses string pattern", () => {
const item = BlacklistItem.fromJSON("example.com");
- expect(item.pattern).to.equal("example.com");
- expect(item.partial).to.be.false;
+ expect(item.pattern).toEqual("example.com");
+ expect(item.partial).toBeFalsy;
});
it("parses partial blacklist item", () => {
@@ -17,56 +16,56 @@ describe("BlacklistItem", () => {
url: "example.com",
keys: ["j", "k"],
});
- expect(item.pattern).to.equal("example.com");
- expect(item.partial).to.be.true;
- expect(item.keys).to.deep.equal(["j", "k"]);
+ expect(item.pattern).toEqual("example.com");
+ expect(item.partial).toBeTruthy;
+ expect(item.keys).toEqual(["j", "k"]);
});
});
describe("#matches", () => {
it('matches by "*"', () => {
const item = BlacklistItem.fromJSON("*");
- expect(item.matches(new URL("https://github.com/abc"))).to.be.true;
+ expect(item.matches(new URL("https://github.com/abc"))).toBeTruthy;
});
it("matches by hostname", () => {
const item = BlacklistItem.fromJSON("github.com");
- expect(item.matches(new URL("https://github.com"))).to.be.true;
- expect(item.matches(new URL("https://gist.github.com"))).to.be.false;
- expect(item.matches(new URL("https://github.com/ueokande"))).to.be.true;
- expect(item.matches(new URL("https://github.org"))).to.be.false;
- expect(item.matches(new URL("https://google.com/search?q=github.org"))).to
- .be.false;
+ expect(item.matches(new URL("https://github.com"))).toBeTruthy;
+ expect(item.matches(new URL("https://gist.github.com"))).toBeFalsy;
+ expect(item.matches(new URL("https://github.com/ueokande"))).toBeTruthy;
+ expect(item.matches(new URL("https://github.org"))).toBeFalsy;
+ expect(item.matches(new URL("https://google.com/search?q=github.org")))
+ .toBeFalsy;
});
it("matches by hostname with wildcard", () => {
const item = BlacklistItem.fromJSON("*.github.com");
- expect(item.matches(new URL("https://github.com"))).to.be.false;
- expect(item.matches(new URL("https://gist.github.com"))).to.be.true;
+ expect(item.matches(new URL("https://github.com"))).toBeFalsy;
+ expect(item.matches(new URL("https://gist.github.com"))).toBeTruthy;
});
it("matches by path", () => {
const item = BlacklistItem.fromJSON("github.com/abc");
- expect(item.matches(new URL("https://github.com/abc"))).to.be.true;
- expect(item.matches(new URL("https://github.com/abcdef"))).to.be.false;
- expect(item.matches(new URL("https://gist.github.com/abc"))).to.be.false;
+ expect(item.matches(new URL("https://github.com/abc"))).toBeTruthy;
+ expect(item.matches(new URL("https://github.com/abcdef"))).toBeFalsy;
+ expect(item.matches(new URL("https://gist.github.com/abc"))).toBeFalsy;
});
it("matches by path with wildcard", () => {
const item = BlacklistItem.fromJSON("github.com/abc*");
- expect(item.matches(new URL("https://github.com/abc"))).to.be.true;
- expect(item.matches(new URL("https://github.com/abcdef"))).to.be.true;
- expect(item.matches(new URL("https://gist.github.com/abc"))).to.be.false;
+ expect(item.matches(new URL("https://github.com/abc"))).toBeTruthy;
+ expect(item.matches(new URL("https://github.com/abcdef"))).toBeTruthy;
+ expect(item.matches(new URL("https://gist.github.com/abc"))).toBeFalsy;
});
it("matches address and port", () => {
const item = BlacklistItem.fromJSON("127.0.0.1:8888");
- expect(item.matches(new URL("http://127.0.0.1:8888/"))).to.be.true;
- expect(item.matches(new URL("http://127.0.0.1:8888/hello"))).to.be.true;
+ expect(item.matches(new URL("http://127.0.0.1:8888/"))).toBeTruthy;
+ expect(item.matches(new URL("http://127.0.0.1:8888/hello"))).toBeTruthy;
});
it("matches with partial blacklist", () => {
@@ -75,8 +74,8 @@ describe("BlacklistItem", () => {
keys: ["j", "k"],
});
- expect(item.matches(new URL("https://google.com"))).to.be.true;
- expect(item.matches(new URL("https://yahoo.com"))).to.be.false;
+ expect(item.matches(new URL("https://google.com"))).toBeTruthy;
+ expect(item.matches(new URL("https://yahoo.com"))).toBeFalsy;
});
});
@@ -89,22 +88,22 @@ describe("BlacklistItem", () => {
expect(
item.includeKey(new URL("http://google.com/maps"), Key.fromMapKey("j"))
- ).to.be.true;
+ ).toBeTruthy;
expect(
item.includeKey(
new URL("http://google.com/maps"),
Key.fromMapKey("<C-U>")
)
- ).to.be.true;
+ ).toBeTruthy;
expect(
item.includeKey(new URL("http://google.com/maps"), Key.fromMapKey("z"))
- ).to.be.false;
+ ).toBeFalsy;
expect(
item.includeKey(new URL("http://google.com/maps"), Key.fromMapKey("u"))
- ).to.be.false;
+ ).toBeFalsy;
expect(
item.includeKey(new URL("http://maps.google.com/"), Key.fromMapKey("j"))
- ).to.be.false;
+ ).toBeFalsy;
});
});
});
@@ -113,7 +112,7 @@ describe("Blacklist", () => {
describe("#fromJSON", () => {
it("parses string list", () => {
const blacklist = Blacklist.fromJSON(["example.com", "example.org"]);
- expect(blacklist.toJSON()).to.deep.equals(["example.com", "example.org"]);
+ expect(blacklist.toJSON()).toEqual(["example.com", "example.org"]);
});
it("parses mixed blacklist", () => {
@@ -121,7 +120,7 @@ describe("Blacklist", () => {
{ url: "example.com", keys: ["j", "k"] },
"example.org",
]);
- expect(blacklist.toJSON()).to.deep.equals([
+ expect(blacklist.toJSON()).toEqual([
{ url: "example.com", keys: ["j", "k"] },
"example.org",
]);
@@ -129,7 +128,7 @@ describe("Blacklist", () => {
it("parses empty blacklist", () => {
const blacklist = Blacklist.fromJSON([]);
- expect(blacklist.toJSON()).to.deep.equals([]);
+ expect(blacklist.toJSON()).toEqual([]);
});
});
@@ -137,12 +136,12 @@ describe("Blacklist", () => {
it("matches a url with entire blacklist", () => {
const blacklist = Blacklist.fromJSON(["google.com", "*.github.com"]);
expect(blacklist.includesEntireBlacklist(new URL("https://google.com")))
- .to.be.true;
+ .toBeTruthy;
expect(blacklist.includesEntireBlacklist(new URL("https://github.com")))
- .to.be.false;
+ .toBeFalsy;
expect(
blacklist.includesEntireBlacklist(new URL("https://gist.github.com"))
- ).to.be.true;
+ ).toBeTruthy;
});
it("does not matches with partial blacklist", () => {
@@ -151,9 +150,9 @@ describe("Blacklist", () => {
{ url: "yahoo.com", keys: ["j", "k"] },
]);
expect(blacklist.includesEntireBlacklist(new URL("https://google.com")))
- .to.be.true;
- expect(blacklist.includesEntireBlacklist(new URL("https://yahoo.com"))).to
- .be.false;
+ .toBeTruthy;
+ expect(blacklist.includesEntireBlacklist(new URL("https://yahoo.com")))
+ .toBeFalsy;
});
});
@@ -166,13 +165,13 @@ describe("Blacklist", () => {
expect(
blacklist.includeKey(new URL("https://google.com"), Key.fromMapKey("j"))
- ).to.be.false;
+ ).toBeFalsy;
expect(
blacklist.includeKey(new URL("https://github.com"), Key.fromMapKey("j"))
- ).to.be.true;
+ ).toBeTruthy;
expect(
blacklist.includeKey(new URL("https://github.com"), Key.fromMapKey("a"))
- ).to.be.false;
+ ).toBeFalsy;
});
});
});
diff --git a/test/shared/settings/Key.test.ts b/test/shared/settings/Key.test.ts
index 47af1d9..8ad9265 100644
--- a/test/shared/settings/Key.test.ts
+++ b/test/shared/settings/Key.test.ts
@@ -1,89 +1,88 @@
-import { expect } from "chai";
import Key from "../../../src/shared/settings/Key";
describe("Key", () => {
describe("fromMapKey", () => {
it("return for X", () => {
const key = Key.fromMapKey("x");
- expect(key.key).to.equal("x");
- expect(key.shift).to.be.false;
- expect(key.ctrl).to.be.false;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("x");
+ expect(key.shift).toBeFalsy;
+ expect(key.ctrl).toBeFalsy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
it("return for Shift+X", () => {
const key = Key.fromMapKey("X");
- expect(key.key).to.equal("X");
- expect(key.shift).to.be.true;
- expect(key.ctrl).to.be.false;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("X");
+ expect(key.shift).toBeTruthy;
+ expect(key.ctrl).toBeFalsy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
it("return for Ctrl+X", () => {
const key = Key.fromMapKey("<C-X>");
- expect(key.key).to.equal("x");
- expect(key.shift).to.be.false;
- expect(key.ctrl).to.be.true;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("x");
+ expect(key.shift).toBeFalsy;
+ expect(key.ctrl).toBeTruthy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
it("returns for Ctrl+Meta+X", () => {
const key = Key.fromMapKey("<C-M-X>");
- expect(key.key).to.equal("x");
- expect(key.shift).to.be.false;
- expect(key.ctrl).to.be.true;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.true;
+ expect(key.key).toEqual("x");
+ expect(key.shift).toBeFalsy;
+ expect(key.ctrl).toBeTruthy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeTruthy;
});
it("returns for Ctrl+Shift+x", () => {
const key = Key.fromMapKey("<C-S-x>");
- expect(key.key).to.equal("X");
- expect(key.shift).to.be.true;
- expect(key.ctrl).to.be.true;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("X");
+ expect(key.shift).toBeTruthy;
+ expect(key.ctrl).toBeTruthy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
it("returns for Shift+Esc", () => {
const key = Key.fromMapKey("<S-Esc>");
- expect(key.key).to.equal("Esc");
- expect(key.shift).to.be.true;
- expect(key.ctrl).to.be.false;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("Esc");
+ expect(key.shift).toBeTruthy;
+ expect(key.ctrl).toBeFalsy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
it("returns for Ctrl+Esc", () => {
const key = Key.fromMapKey("<C-Esc>");
- expect(key.key).to.equal("Esc");
- expect(key.shift).to.be.false;
- expect(key.ctrl).to.be.true;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("Esc");
+ expect(key.shift).toBeFalsy;
+ expect(key.ctrl).toBeTruthy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
it("returns for Ctrl+Esc", () => {
const key = Key.fromMapKey("<C-Space>");
- expect(key.key).to.equal("Space");
- expect(key.shift).to.be.false;
- expect(key.ctrl).to.be.true;
- expect(key.alt).to.be.false;
- expect(key.meta).to.be.false;
+ expect(key.key).toEqual("Space");
+ expect(key.shift).toBeFalsy;
+ expect(key.ctrl).toBeTruthy;
+ expect(key.alt).toBeFalsy;
+ expect(key.meta).toBeFalsy;
});
});
describe("idDigit", () => {
it("returns true if the key is a digit", () => {
- expect(new Key({ key: "0" }).isDigit()).to.be.true;
- expect(new Key({ key: "9" }).isDigit()).to.be.true;
- expect(new Key({ key: "9", alt: true }).isDigit()).to.be.false;
+ expect(new Key({ key: "0" }).isDigit()).toBeTruthy;
+ expect(new Key({ key: "9" }).isDigit()).toBeTruthy;
+ expect(new Key({ key: "9", alt: true }).isDigit()).toBeFalsy;
- expect(new Key({ key: "a" }).isDigit()).to.be.false;
- expect(new Key({ key: "0" }).isDigit()).to.be.false;
+ expect(new Key({ key: "a" }).isDigit()).toBeFalsy;
+ expect(new Key({ key: "0" }).isDigit()).toBeFalsy;
});
});
@@ -105,7 +104,7 @@ describe("Key", () => {
meta: false,
})
)
- ).to.be.true;
+ ).toBeTruthy;
expect(
new Key({
@@ -123,7 +122,7 @@ describe("Key", () => {
meta: false,
})
)
- ).to.be.false;
+ ).toBeFalsy;
});
});
});
diff --git a/test/shared/settings/Keymaps.test.ts b/test/shared/settings/Keymaps.test.ts
index 264684d..850e327 100644
--- a/test/shared/settings/Keymaps.test.ts
+++ b/test/shared/settings/Keymaps.test.ts
@@ -1,11 +1,10 @@
import Keymaps from "../../../src/shared/settings/Keymaps";
-import { expect } from "chai";
describe("Keymaps", () => {
describe("#valueOf", () => {
it("returns empty object by empty settings", () => {
const keymaps = Keymaps.fromJSON({}).toJSON();
- expect(keymaps).to.be.empty;
+ expect(keymaps).toEqual({});
});
it("returns keymaps by valid settings", () => {
@@ -14,11 +13,11 @@ describe("Keymaps", () => {
j: { type: "scroll.vertically", count: 1 },
}).toJSON();
- expect(keymaps["k"]).to.deep.equal({
+ expect(keymaps["k"]).toEqual({
type: "scroll.vertically",
count: -1,
});
- expect(keymaps["j"]).to.deep.equal({
+ expect(keymaps["j"]).toEqual({
type: "scroll.vertically",
count: 1,
});
@@ -29,7 +28,7 @@ describe("Keymaps", () => {
Keymaps.fromJSON({
k: { type: "invalid.operation" },
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
});
});
@@ -48,7 +47,7 @@ describe("Keymaps", () => {
const entries = keymaps
.entries()
.sort(([name1], [name2]) => name1.localeCompare(name2));
- expect(entries).deep.equals([
+ expect(entries).toEqual([
["j", { type: "scroll.vertically", count: 1 }],
["k", { type: "scroll.vertically", count: -1 }],
["n", { type: "find.next" }],
@@ -70,7 +69,7 @@ describe("Keymaps", () => {
const entries = keymaps
.entries()
.sort(([name1], [name2]) => name1.localeCompare(name2));
- expect(entries).deep.equals([
+ expect(entries).toEqual([
["j", { type: "find.prev" }],
["k", { type: "scroll.vertically", count: -1 }],
["n", { type: "find.next" }],
diff --git a/test/shared/settings/Properties.test.ts b/test/shared/settings/Properties.test.ts
index 647cb1c..1161b48 100644
--- a/test/shared/settings/Properties.test.ts
+++ b/test/shared/settings/Properties.test.ts
@@ -1,12 +1,11 @@
import Properties from "../../../src/shared/settings/Properties";
-import { expect } from "chai";
import ColorScheme from "../../../src/shared/ColorScheme";
describe("Properties", () => {
describe("#propertiesValueOf", () => {
it("returns with default properties by empty settings", () => {
const props = Properties.fromJSON({});
- expect(props).to.deep.equal({
+ expect(props).toEqual({
hintchars: "abcdefghijklmnopqrstuvwxyz",
smoothscroll: false,
complete: "sbh",
@@ -22,7 +21,7 @@ describe("Properties", () => {
colorscheme: ColorScheme.System,
});
- expect(props).to.deep.equal({
+ expect(props).toEqual({
hintchars: "abcdefgh",
smoothscroll: false,
complete: "sbh",
diff --git a/test/shared/settings/Search.test.ts b/test/shared/settings/Search.test.ts
index 1feb14b..5d2f8d5 100644
--- a/test/shared/settings/Search.test.ts
+++ b/test/shared/settings/Search.test.ts
@@ -1,5 +1,4 @@
import Search from "../../../src/shared/settings/Search";
-import { expect } from "chai";
describe("Search", () => {
it("returns search settings by valid settings", () => {
@@ -11,12 +10,12 @@ describe("Search", () => {
},
});
- expect(search.defaultEngine).to.equal("google");
- expect(search.engines).to.deep.equals({
+ expect(search.defaultEngine).toEqual("google");
+ expect(search.engines).toEqual({
google: "https://google.com/search?q={}",
yahoo: "https://search.yahoo.com/search?p={}",
});
- expect(search.toJSON()).to.deep.equal({
+ expect(search.toJSON()).toEqual({
default: "google",
engines: {
google: "https://google.com/search?q={}",
@@ -34,7 +33,7 @@ describe("Search", () => {
yahoo: "https://search.yahoo.com/search?p={}",
},
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
expect(() =>
Search.fromJSON({
default: "g o o g l e",
@@ -42,7 +41,7 @@ describe("Search", () => {
"g o o g l e": "https://google.com/search?q={}",
},
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
expect(() =>
Search.fromJSON({
default: "google",
@@ -50,7 +49,7 @@ describe("Search", () => {
google: "https://google.com/search",
},
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
expect(() =>
Search.fromJSON({
default: "google",
@@ -58,6 +57,6 @@ describe("Search", () => {
google: "https://google.com/search?q={}&r={}",
},
})
- ).to.throw(TypeError);
+ ).toThrow(TypeError);
});
});
diff --git a/test/shared/settings/Settings.test.ts b/test/shared/settings/Settings.test.ts
index 951c9cd..49a5d0b 100644
--- a/test/shared/settings/Settings.test.ts
+++ b/test/shared/settings/Settings.test.ts
@@ -1,5 +1,4 @@
import Settings from "../../../src/shared/settings/Settings";
-import { expect } from "chai";
describe("Settings", () => {
describe("#valueOf", () => {
@@ -21,7 +20,7 @@ describe("Settings", () => {
search: x.search.toJSON(),
properties: x.properties.toJSON(),
blacklist: x.blacklist.toJSON(),
- }).to.deep.equal({
+ }).toEqual({
keymaps: {},
search: {
default: "google",
@@ -41,15 +40,15 @@ describe("Settings", () => {
it("sets default settings", () => {
const value = Settings.fromJSON({});
- expect(value.keymaps.toJSON()).to.not.be.empty;
- expect(value.properties.toJSON()).to.not.be.empty;
- expect(value.search.defaultEngine).to.be.a("string");
- expect(value.search.engines).to.be.an("object");
- expect(value.blacklist.toJSON()).to.be.empty;
+ expect(value.keymaps.toJSON()).not.toEqual({});
+ expect(value.properties.toJSON()).not.toEqual({});
+ expect(typeof value.search.defaultEngine).toEqual("string");
+ expect(typeof value.search.engines).toEqual("object");
+ expect(value.blacklist.toJSON()).toHaveLength(0);
});
it("throws a TypeError with an unknown field", () => {
- expect(() => Settings.fromJSON({ name: "alice" })).to.throw(TypeError);
+ expect(() => Settings.fromJSON({ name: "alice" })).toThrow(TypeError);
});
});
});
diff --git a/test/shared/urls.test.ts b/test/shared/urls.test.ts
index f264ad9..ec618f6 100644
--- a/test/shared/urls.test.ts
+++ b/test/shared/urls.test.ts
@@ -1,5 +1,4 @@
import * as parsers from "../../src/shared/urls";
-import { expect } from "chai";
import Search from "../../src/shared/settings/Search";
describe("shared/commands/parsers", () => {
@@ -13,55 +12,55 @@ describe("shared/commands/parsers", () => {
});
it("convertes search url", () => {
- expect(parsers.searchUrl("google.com", config)).to.equal(
+ expect(parsers.searchUrl("google.com", config)).toEqual(
"http://google.com"
);
- expect(parsers.searchUrl("google apple", config)).to.equal(
+ expect(parsers.searchUrl("google apple", config)).toEqual(
"https://google.com/search?q=apple"
);
- expect(parsers.searchUrl("yahoo apple", config)).to.equal(
+ expect(parsers.searchUrl("yahoo apple", config)).toEqual(
"https://yahoo.com/search?q=apple"
);
- expect(parsers.searchUrl("google apple banana", config)).to.equal(
+ expect(parsers.searchUrl("google apple banana", config)).toEqual(
"https://google.com/search?q=apple%20banana"
);
- expect(parsers.searchUrl("yahoo C++CLI", config)).to.equal(
+ expect(parsers.searchUrl("yahoo C++CLI", config)).toEqual(
"https://yahoo.com/search?q=C%2B%2BCLI"
);
});
it("user default search engine", () => {
- expect(parsers.searchUrl("apple banana", config)).to.equal(
+ expect(parsers.searchUrl("apple banana", config)).toEqual(
"https://google.com/search?q=apple%20banana"
);
});
it("searches with a word containing a colon", () => {
- expect(parsers.searchUrl("foo:", config)).to.equal(
+ expect(parsers.searchUrl("foo:", config)).toEqual(
"https://google.com/search?q=foo%3A"
);
- expect(parsers.searchUrl("std::vector", config)).to.equal(
+ expect(parsers.searchUrl("std::vector", config)).toEqual(
"https://google.com/search?q=std%3A%3Avector"
);
});
it("localhost urls", () => {
- expect(parsers.searchUrl("localhost", config)).to.equal(
+ expect(parsers.searchUrl("localhost", config)).toEqual(
"http://localhost"
);
- expect(parsers.searchUrl("http://localhost", config)).to.equal(
+ expect(parsers.searchUrl("http://localhost", config)).toEqual(
"http://localhost/"
);
- expect(parsers.searchUrl("localhost:8080", config)).to.equal(
+ expect(parsers.searchUrl("localhost:8080", config)).toEqual(
"http://localhost:8080"
);
- expect(parsers.searchUrl("localhost:80nan", config)).to.equal(
+ expect(parsers.searchUrl("localhost:80nan", config)).toEqual(
"https://google.com/search?q=localhost%3A80nan"
);
- expect(parsers.searchUrl("localhost 8080", config)).to.equal(
+ expect(parsers.searchUrl("localhost 8080", config)).toEqual(
"https://google.com/search?q=localhost%208080"
);
- expect(parsers.searchUrl("localhost:80/build", config)).to.equal(
+ expect(parsers.searchUrl("localhost:80/build", config)).toEqual(
"http://localhost:80/build"
);
});
@@ -69,10 +68,10 @@ describe("shared/commands/parsers", () => {
describe("#normalizeUrl", () => {
it("normalize urls", () => {
- expect(parsers.normalizeUrl("https://google.com/")).to.equal(
+ expect(parsers.normalizeUrl("https://google.com/")).toEqual(
"https://google.com/"
);
- expect(parsers.normalizeUrl("google.com")).to.equal("http://google.com");
+ expect(parsers.normalizeUrl("google.com")).toEqual("http://google.com");
});
});
});