From 09f342db1bab8f035c0feb6e26d2368ad9359c10 Mon Sep 17 00:00:00 2001 From: Laton Vermette <1619661+latonv@users.noreply.github.com> Date: Wed, 4 Oct 2023 20:51:31 -0700 Subject: [PATCH] Add unit tests --- .../fulltext-search-backend.test.ts | 45 +++++++++++++++++++ .../metadata-search-backend.test.ts | 45 +++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/test/search-backend/fulltext-search-backend.test.ts b/test/search-backend/fulltext-search-backend.test.ts index 2a65054..c7e78b8 100644 --- a/test/search-backend/fulltext-search-backend.test.ts +++ b/test/search-backend/fulltext-search-backend.test.ts @@ -118,6 +118,51 @@ describe('FulltextSearchBackend', () => { window.history.replaceState({}, '', url.toString()); }); + it('includes reCache param from URL if not provided', async () => { + const url = new URL(window.location.href); + url.searchParams.set('reCache', '1'); + window.history.replaceState({}, '', url.toString()); + + const backend = new FulltextSearchBackend(); + await backend.performSearch({ query: 'foo' }); + + const queryParams = new URL(urlCalled!.toString()).searchParams; + expect(queryParams.get('caching')).to.equal('{"recompute":true}'); + + url.searchParams.delete('reCache'); + window.history.replaceState({}, '', url.toString()); + }); + + it('includes noCache param from URL if not provided', async () => { + const url = new URL(window.location.href); + url.searchParams.set('noCache', '1'); + window.history.replaceState({}, '', url.toString()); + + const backend = new FulltextSearchBackend(); + await backend.performSearch({ query: 'foo' }); + + const queryParams = new URL(urlCalled!.toString()).searchParams; + expect(queryParams.get('caching')).to.equal('{"bypass":true}'); + + url.searchParams.delete('noCache'); + window.history.replaceState({}, '', url.toString()); + }); + + it('includes dontCache param from URL if not provided', async () => { + const url = new URL(window.location.href); + url.searchParams.set('dontCache', '1'); + window.history.replaceState({}, '', url.toString()); + + const backend = new FulltextSearchBackend(); + await backend.performSearch({ query: 'foo' }); + + const queryParams = new URL(urlCalled!.toString()).searchParams; + expect(queryParams.get('caching')).to.equal('{"no_compute":true}'); + + url.searchParams.delete('dontCache'); + window.history.replaceState({}, '', url.toString()); + }); + it('can enable debugging by default on all searches', async () => { const backend = new FulltextSearchBackend({ baseUrl: 'foo.bar', diff --git a/test/search-backend/metadata-search-backend.test.ts b/test/search-backend/metadata-search-backend.test.ts index 9e4361c..7258451 100644 --- a/test/search-backend/metadata-search-backend.test.ts +++ b/test/search-backend/metadata-search-backend.test.ts @@ -118,6 +118,51 @@ describe('MetadataSearchBackend', () => { window.history.replaceState({}, '', url.toString()); }); + it('includes reCache param from URL if not provided', async () => { + const url = new URL(window.location.href); + url.searchParams.set('reCache', '1'); + window.history.replaceState({}, '', url.toString()); + + const backend = new MetadataSearchBackend(); + await backend.performSearch({ query: 'foo' }); + + const queryParams = new URL(urlCalled!.toString()).searchParams; + expect(queryParams.get('caching')).to.equal('{"recompute":true}'); + + url.searchParams.delete('reCache'); + window.history.replaceState({}, '', url.toString()); + }); + + it('includes noCache param from URL if not provided', async () => { + const url = new URL(window.location.href); + url.searchParams.set('noCache', '1'); + window.history.replaceState({}, '', url.toString()); + + const backend = new MetadataSearchBackend(); + await backend.performSearch({ query: 'foo' }); + + const queryParams = new URL(urlCalled!.toString()).searchParams; + expect(queryParams.get('caching')).to.equal('{"bypass":true}'); + + url.searchParams.delete('noCache'); + window.history.replaceState({}, '', url.toString()); + }); + + it('includes dontCache param from URL if not provided', async () => { + const url = new URL(window.location.href); + url.searchParams.set('dontCache', '1'); + window.history.replaceState({}, '', url.toString()); + + const backend = new MetadataSearchBackend(); + await backend.performSearch({ query: 'foo' }); + + const queryParams = new URL(urlCalled!.toString()).searchParams; + expect(queryParams.get('caching')).to.equal('{"no_compute":true}'); + + url.searchParams.delete('dontCache'); + window.history.replaceState({}, '', url.toString()); + }); + it('can enable debugging by default on all searches', async () => { const backend = new MetadataSearchBackend({ baseUrl: 'foo.bar',