Page MenuHomePhabricator

[kayserver] Fix search endpoint failing when called with a stopword
ClosedPublic

Authored by inka on Jun 7 2023, 6:45 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 12, 1:52 AM
Unknown Object (File)
Fri, Nov 1, 5:34 AM
Unknown Object (File)
Fri, Nov 1, 3:21 AM
Unknown Object (File)
Fri, Nov 1, 3:21 AM
Unknown Object (File)
Fri, Nov 1, 3:21 AM
Unknown Object (File)
Fri, Nov 1, 3:20 AM
Unknown Object (File)
Fri, Nov 1, 3:20 AM
Unknown Object (File)
Sat, Oct 26, 6:13 PM
Subscribers

Details

Summary

issue: https://linear.app/comm/issue/ENG-4055/search-endpoint-failing-when-called-with-only-a-stopword
When searchMessagesInSingleChat was passed a string with only stopwords, they were stripped away by processQueryForSearch and the pattern variable was '+', which is not a valid patter for MATCH AGAINST query

Test Plan

call the endpoint with a string that had only stopwords, checked that there are no errors. Called the endpoint with a string containing both a stopword and a non stopword, checked that it returns correct values. Checked he endpoint with a string containing only a non stopword.

Diff Detail

Repository
rCOMM Comm
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

inka edited the test plan for this revision. (Show Details)

I could also just check if pattern === '+' and not change the processQueryForSearch function, but I like this approach better

inka requested review of this revision.Jun 7 2023, 7:02 AM
kamil added inline comments.
keyserver/src/database/search-utils.js
139 ↗(On Diff #27524)

maybe worth adding a test case with something like: expect(processQueryForSearch(stopWord)).toBe('');

This revision is now accepted and ready to land.Jun 12 2023, 1:27 AM