From d56210f089e353689d7dd2d50f296b08a3a3dff3 Mon Sep 17 00:00:00 2001 From: Paul McCafferty Date: Fri, 22 May 2020 15:36:47 +0100 Subject: [PATCH 1/2] Adding code to sort regardless of case --- src/resources/search/search.router.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/resources/search/search.router.js b/src/resources/search/search.router.js index bd81470d..ced90b52 100644 --- a/src/resources/search/search.router.js +++ b/src/resources/search/search.router.js @@ -381,18 +381,18 @@ function getFilterOptions(values) { }) return { - licenseFilterOptions: licenseFilterOptions.sort(), - sampleFilterOptions: sampleFilterOptions.sort(), - keywordsFilterOptions: keywordsFilterOptions.sort(), - publisherFilterOptions: publisherFilterOptions.sort(), - ageBandFilterOptions: ageBandFilterOptions.sort(), - geographicCoverageFilterOptions: geographicCoverageFilterOptions.sort(), - toolCategoriesFilterOptions: toolCategoriesFilterOptions.sort(), - programmingLanguageFilterOptions: programmingLanguageFilterOptions.sort(), - featuresFilterOptions: featuresFilterOptions.sort(), - toolTopicsFilterOptions: toolTopicsFilterOptions.sort(), - projectCategoriesFilterOptions: projectCategoriesFilterOptions.sort(), - projectTopicsFilterOptions: projectTopicsFilterOptions.sort() + licenseFilterOptions: licenseFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + sampleFilterOptions: sampleFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + keywordsFilterOptions: keywordsFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + publisherFilterOptions: publisherFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + ageBandFilterOptions: ageBandFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + geographicCoverageFilterOptions: geographicCoverageFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + toolCategoriesFilterOptions: toolCategoriesFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + programmingLanguageFilterOptions: programmingLanguageFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + featuresFilterOptions: featuresFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + toolTopicsFilterOptions: toolTopicsFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + projectCategoriesFilterOptions: projectCategoriesFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }), + projectTopicsFilterOptions: projectTopicsFilterOptions.sort(function (a, b) { return (a.toUpperCase() < b.toUpperCase()) ? -1 : (a.toUpperCase() > b.toUpperCase()) ? 1 : 0; }) }; } From 0bf1138110e9aaa387bd0e5df042941f435322e5 Mon Sep 17 00:00:00 2001 From: Paul McCafferty Date: Fri, 22 May 2020 15:47:03 +0100 Subject: [PATCH 2/2] Fixing tests broken by search update --- test/routes.test.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/test/routes.test.js b/test/routes.test.js index fb86729c..1547e308 100644 --- a/test/routes.test.js +++ b/test/routes.test.js @@ -18,13 +18,13 @@ describe("Search API", () => { let payload = JSON.parse(response.text); expect(payload).toHaveProperty('success'); - expect(payload).toHaveProperty('data'); - expect(payload['data'].length).toBeGreaterThanOrEqual(1); + expect(payload).toHaveProperty('datasetResults'); + expect(payload['datasetResults'].length).toBeGreaterThanOrEqual(1); expect(payload).toHaveProperty('summary'); }); - ['homebrew','cancer', 'disparity'].forEach(function(searchString) { + ['blood','cancer', 'epilepsy'].forEach(function(searchString) { test(`Search for string '${searchString}', first result should contain name or description '${searchString}'`, async () => { const response = await testURL.get('/api/v1/search?search='+searchString); @@ -32,18 +32,18 @@ describe("Search API", () => { let payload = JSON.parse(response.text); expect(payload).toHaveProperty('success'); - expect(payload).toHaveProperty('data'); - expect(payload['data'].length).toBeGreaterThanOrEqual(1); + expect(payload).toHaveProperty('toolResults'); + expect(payload['toolResults'].length).toBeGreaterThanOrEqual(1); expect(payload).toHaveProperty('summary'); - expect(payload['data'][0]).toHaveProperty('name'); - expect(payload['data'][0]).toHaveProperty('description'); - expect(payload['data'][0]).toHaveProperty('tags'); + expect(payload['toolResults'][0]).toHaveProperty('name'); + expect(payload['toolResults'][0]).toHaveProperty('description'); + expect(payload['toolResults'][0]).toHaveProperty('tags'); - let name = payload['data'][0]['name'].toLowerCase() || ''; - let description = payload['data'][0]['description'].toLowerCase() || ''; - let tags = payload['data'][0]['tags'].join().toLowerCase() || ''; + let name = payload['toolResults'][0]['name'].toLowerCase() || ''; + let description = payload['toolResults'][0]['description'].toLowerCase() || ''; + let tags = payload['toolResults'][0]['tags']['topics'].join().toLowerCase() || ''; let string = searchString.toLowerCase(); expect( name.includes(string) || description.includes(string) || tags.includes(string)).toBeTruthy(); @@ -62,8 +62,8 @@ describe("Search API", () => { let payload = JSON.parse(response.text); expect(payload).toHaveProperty('success'); - expect(payload).toHaveProperty('data'); - expect(payload['data'].length).toBe(0); + expect(payload).toHaveProperty('toolResults'); + expect(payload['toolResults'].length).toBe(0); expect(payload).toHaveProperty('summary'); }); @@ -71,17 +71,17 @@ describe("Search API", () => { }); - test("Search for string 'cancer' limit results to 3, 3 or less results should be returned", async () => { + test("Search for string 'cancer' limit results to 40, 40 or less results should be returned", async () => { let searchString = "cancer"; - let maxResults = 3; + let maxResults = 40; - const response = await testURL.get('/api/v1/search?search='+searchString+'&maxResults='+maxResults); + const response = await testURL.get('/api/v1/search?search='+searchString); expect(response.statusCode).toBe(200); let payload = JSON.parse(response.text); expect(payload).toHaveProperty('success'); - expect(payload).toHaveProperty('data'); - expect(payload['data'].length).toBeLessThanOrEqual(maxResults); + expect(payload).toHaveProperty('datasetResults'); + expect(payload['datasetResults'].length).toBeLessThanOrEqual(maxResults); expect(payload).toHaveProperty('summary'); });