diff options
Diffstat (limited to 'test/background/completion/impl')
| -rw-r--r-- | test/background/completion/impl/PrefetchAndCache.test.ts | 100 | ||||
| -rw-r--r-- | test/background/completion/impl/filters.test.ts | 30 | 
2 files changed, 28 insertions, 102 deletions
| diff --git a/test/background/completion/impl/PrefetchAndCache.test.ts b/test/background/completion/impl/PrefetchAndCache.test.ts deleted file mode 100644 index b24dfa9..0000000 --- a/test/background/completion/impl/PrefetchAndCache.test.ts +++ /dev/null @@ -1,100 +0,0 @@ -import PrefetchAndCache, { -  shortKey, -} from "../../../../src/background/completion/impl/PrefetchAndCache"; -import { expect } from "chai"; - -class MockRepository { -  public history: 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))); -    } -  } -} -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"); -  }); - -  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-"); -  }); - -  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/"); - -    query = "https://example.com/path/to/resource/#id1"; -    shorten = shortKey(query); -    expect(shorten).to.equal("https://example.com/path/to/"); - -    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", -      ]); -      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("banana")).deep.equal(["banana", "banana pudding"]); -      expect(repo.history).to.deep.equal(["apple", "ap", "ban"]); -      expect(await sut.get("banana p")).deep.equal(["banana pudding"]); -      expect(repo.history).to.deep.equal(["apple", "ap", "ban", "banana"]); -      expect(await sut.get("ba")).deep.equal(["banana", "banana pudding"]); -      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", -        "", -      ]); -    }); -  }); -}); diff --git a/test/background/completion/impl/filters.test.ts b/test/background/completion/impl/filters.test.ts index 70c2663..b160944 100644 --- a/test/background/completion/impl/filters.test.ts +++ b/test/background/completion/impl/filters.test.ts @@ -54,6 +54,19 @@ describe("background/usecases/filters", () => {    });    describe("filterByPathname", () => { +    it("remains items less than minimam length", () => { +      const pages = [ +        { id: "0", url: "http://i-beam.org/search?q=apple" }, +        { id: "1", url: "http://i-beam.org/search?q=apple_banana" }, +        { id: "2", url: "http://i-beam.org/search?q=apple_banana_cherry" }, +        { id: "3", url: "http://i-beam.org/request?q=apple" }, +        { id: "4", url: "http://i-beam.org/request?q=apple_banana" }, +        { id: "5", url: "http://i-beam.org/request?q=apple_banana_cherry" }, +      ]; +      const filtered = filters.filterByPathname(pages, 10); +      expect(filtered).to.have.lengthOf(6); +    }); +      it("filters by length of pathname", () => {        const pages = [          { id: "0", url: "http://i-beam.org/search?q=apple" }, @@ -63,7 +76,7 @@ describe("background/usecases/filters", () => {          { id: "4", url: "http://i-beam.net/search?q=apple_banana" },          { id: "5", url: "http://i-beam.net/search?q=apple_banana_cherry" },        ]; -      const filtered = filters.filterByPathname(pages); +      const filtered = filters.filterByPathname(pages, 0);        expect(filtered).to.deep.equal([          { id: "0", url: "http://i-beam.org/search?q=apple" },          { id: "3", url: "http://i-beam.net/search?q=apple" }, @@ -72,6 +85,19 @@ describe("background/usecases/filters", () => {    });    describe("filterByOrigin", () => { +    it("remains items less than minimam length", () => { +      const pages = [ +        { id: "0", url: "http://i-beam.org/search?q=apple" }, +        { id: "1", url: "http://i-beam.org/search?q=apple_banana" }, +        { id: "2", url: "http://i-beam.org/search?q=apple_banana_cherry" }, +        { id: "3", url: "http://i-beam.org/request?q=apple" }, +        { id: "4", url: "http://i-beam.org/request?q=apple_banana" }, +        { id: "5", url: "http://i-beam.org/request?q=apple_banana_cherry" }, +      ]; +      const filtered = filters.filterByOrigin(pages, 10); +      expect(filtered).to.have.lengthOf(6); +    }); +      it("filters by length of pathname", () => {        const pages = [          { id: "0", url: "http://i-beam.org/search?q=apple" }, @@ -81,7 +107,7 @@ describe("background/usecases/filters", () => {          { id: "4", url: "http://i-beam.org/request?q=apple_banana" },          { id: "5", url: "http://i-beam.org/request?q=apple_banana_cherry" },        ]; -      const filtered = filters.filterByOrigin(pages); +      const filtered = filters.filterByOrigin(pages, 0);        expect(filtered).to.deep.equal([          { id: "0", url: "http://i-beam.org/search?q=apple" },        ]); | 
