From baa811c1aa3e70b4072dfaf3f02bc1d888e21d3d Mon Sep 17 00:00:00 2001 From: Arad Margalit Date: Sun, 3 Jan 2021 22:47:20 -0800 Subject: [PATCH] whoo, that should be it! --- .../PaperSearchBar/PaperSearchBar.test.tsx | 49 +++++++++++++++++++ client/src/mocks/handlers.ts | 3 ++ 2 files changed, 52 insertions(+) diff --git a/client/src/components/PaperSearchBar/PaperSearchBar.test.tsx b/client/src/components/PaperSearchBar/PaperSearchBar.test.tsx index 816abfec..599bd3a6 100644 --- a/client/src/components/PaperSearchBar/PaperSearchBar.test.tsx +++ b/client/src/components/PaperSearchBar/PaperSearchBar.test.tsx @@ -84,5 +84,54 @@ describe('', () => { // Once no result comes back from our mocked API, confirm our custom message is rendered await waitFor(() => expect(screen.getByText('No Results Found')).toBeDefined()); }); + + describe('result interaction', () => { + it('shows both options on click', async () => { + // Render some basic results + renderWithRouterRedux(); + + // Type in a search query + const searchInput = screen.getByPlaceholderText(/search by/); + userEvent.type(searchInput, 'http://dx.doi.org/10.1523/JNEUROSCI.2106-19'); + await waitFor(() => screen.getByText('Test DOI Title')); + + // Click on the item + userEvent.click(screen.getByText('Test DOI Title')); + + // Confirm both popover options are present + expect(screen.getByText(/Add to Reading List/)).toBeDefined(); + expect(screen.getByText(/Start Review Now/)).toBeDefined(); + }); + + it('adds results to the reading list', async () => { + // Render some basic results + renderWithRouterRedux(); + + // Type in a search query + const searchInput = screen.getByPlaceholderText(/search by/); + userEvent.type(searchInput, 'http://dx.doi.org/10.1523/JNEUROSCI.2106-19'); + await waitFor(() => screen.getByText('Test DOI Title')); + + // Click on the item + userEvent.click(screen.getByText('Test DOI Title')); + userEvent.click(screen.getByText(/Add to Reading List/)); + }); + + it('starts the review now', async () => { + // Render some basic results + renderWithRouterRedux(, { redirectTo: '/form' }); + + // Type in a search query + const searchInput = screen.getByPlaceholderText(/search by/); + userEvent.type(searchInput, 'test query'); + await waitFor(() => screen.getByText('Test Interpret Title')); + + // Click on the item + userEvent.click(screen.getByText('Test Interpret Title')); + userEvent.click(screen.getByText(/Start Review Now/)); + + expect(screen.getByText(/Redirected/)).toBeDefined(); + }); + }); }); }); diff --git a/client/src/mocks/handlers.ts b/client/src/mocks/handlers.ts index e275fd57..bdb5d81b 100644 --- a/client/src/mocks/handlers.ts +++ b/client/src/mocks/handlers.ts @@ -16,4 +16,7 @@ export const handlers = [ rest.get('/api/doi/*', (_req, res, ctx) => { return res(ctx.status(200), ctx.json({ ...blankPaper, title: 'Test DOI Title' })); }), + rest.put('/api/readingList', (_req, res, ctx) => { + return res(ctx.status(200), ctx.json([{ ...blankPaper, title: 'Test Paper Title' }, blankPaper])); + }), ];