aboutsummaryrefslogtreecommitdiff
path: root/test/background/completion/impl/PrefetchAndCache.test.ts
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2020-05-02 17:25:56 +0900
committerGitHub <noreply@github.com>2020-05-02 17:25:56 +0900
commit5df0537bcf65a341e79852b1b30379c73318529c (patch)
treeaee5efe52412855f620cb514a13a2c14373f27b7 /test/background/completion/impl/PrefetchAndCache.test.ts
parent685f2b7b69218b06b5bb676069e35f79c5048c9b (diff)
parent75abd90ecb8201ad845b266f96220d8adfe19b2d (diff)
Merge pull request #749 from ueokande/qa-0.28
QA 0.28
Diffstat (limited to 'test/background/completion/impl/PrefetchAndCache.test.ts')
-rw-r--r--test/background/completion/impl/PrefetchAndCache.test.ts80
1 files changed, 53 insertions, 27 deletions
diff --git a/test/background/completion/impl/PrefetchAndCache.test.ts b/test/background/completion/impl/PrefetchAndCache.test.ts
index 23e3879..b24dfa9 100644
--- a/test/background/completion/impl/PrefetchAndCache.test.ts
+++ b/test/background/completion/impl/PrefetchAndCache.test.ts
@@ -1,39 +1,39 @@
-import PrefetchAndCache, {shortKey} from "../../../../src/background/completion/impl/PrefetchAndCache";
-import { expect } from 'chai';
+import PrefetchAndCache, {
+ shortKey,
+} from "../../../../src/background/completion/impl/PrefetchAndCache";
+import { expect } from "chai";
class MockRepository {
public history: string[] = [];
- constructor(
- private items: string[],
- ) {
- }
+ constructor(private items: string[]) {}
get(query: string): Promise<string[]> {
this.history.push(query);
if (query.length === 0) {
return Promise.resolve(this.items);
} else {
- return Promise.resolve(this.items.filter(item => item.includes(query)));
+ return Promise.resolve(this.items.filter((item) => item.includes(query)));
}
}
}
-const filter = (items: string[], query: string) => query.length === 0 ? items : items.filter(item => item.includes(query));
+const filter = (items: string[], query: string) =>
+ query.length === 0 ? items : items.filter((item) => item.includes(query));
-describe('shortKey', () => {
- it('returns query excluding the last word', () => {
- const query = "hello\t world good bye";
- const shorten = shortKey(query);
- expect(shorten).to.equal("hello world good")
+describe("shortKey", () => {
+ it("returns query excluding the last word", () => {
+ const query = "hello\t world good bye";
+ const shorten = shortKey(query);
+ expect(shorten).to.equal("hello world good");
});
- it('returns half-length of the query', () => {
+ it("returns half-length of the query", () => {
const query = "the-query-with-super-long-word";
const shorten = shortKey(query);
- expect(shorten).to.equal("the-query-with-")
+ expect(shorten).to.equal("the-query-with-");
});
- it('returns shorten URL', () => {
+ it("returns shorten URL", () => {
let query = "https://example.com/path/to/resource?q=hello";
let shorten = shortKey(query);
expect(shorten).to.equal("https://example.com/path/to/");
@@ -45,20 +45,39 @@ describe('shortKey', () => {
query = "https://www.google.c";
shorten = shortKey(query);
expect(shorten).to.equal("https://ww");
- })
+ });
});
-describe('PrefetchAndCache', () => {
- describe('get', () => {
- it('returns cached request', async() => {
- const repo = new MockRepository(["apple", "apple pie", "apple juice", "banana", "banana pudding", "cherry"]);
+describe("PrefetchAndCache", () => {
+ describe("get", () => {
+ it("returns cached request", async () => {
+ const repo = new MockRepository([
+ "apple",
+ "apple pie",
+ "apple juice",
+ "banana",
+ "banana pudding",
+ "cherry",
+ ]);
const sut = new PrefetchAndCache(repo.get.bind(repo), filter);
expect(await sut.get("apple pie")).deep.equal(["apple pie"]);
- expect(await sut.get("apple ")).deep.equal(["apple", "apple pie", "apple juice"]);
- expect(await sut.get("apple")).deep.equal(["apple", "apple pie", "apple juice"]);
- expect(await sut.get("appl")).deep.equal(["apple", "apple pie", "apple juice"]);
- expect(repo.history).to.deep.equal(["apple", 'ap']);
+ expect(await sut.get("apple ")).deep.equal([
+ "apple",
+ "apple pie",
+ "apple juice",
+ ]);
+ expect(await sut.get("apple")).deep.equal([
+ "apple",
+ "apple pie",
+ "apple juice",
+ ]);
+ expect(await sut.get("appl")).deep.equal([
+ "apple",
+ "apple pie",
+ "apple juice",
+ ]);
+ expect(repo.history).to.deep.equal(["apple", "ap"]);
expect(await sut.get("banana")).deep.equal(["banana", "banana pudding"]);
expect(repo.history).to.deep.equal(["apple", "ap", "ban"]);
@@ -68,7 +87,14 @@ describe('PrefetchAndCache', () => {
expect(repo.history).to.deep.equal(["apple", "ap", "ban", "banana", "b"]);
expect(await sut.get("")).to.have.lengthOf(6);
- expect(repo.history).to.deep.equal(["apple", "ap", "ban", "banana", "b", ""]);
+ expect(repo.history).to.deep.equal([
+ "apple",
+ "ap",
+ "ban",
+ "banana",
+ "b",
+ "",
+ ]);
});
});
-}); \ No newline at end of file
+});