add and subtract as you wish, this is just a starting point
Search
[ ] no results found
[ ] sparse vector retrieval works on listings
[ ] sparse vector retrieval works on users (if search is "john", results = john, john_wick, little_john)
[ ] sparse vector retrieval works for multiple words (ex: yellow+bike gives yellow objects and bike objects. Is a yellow bike at the top?)
[ ] empty search sent ie. "" (if frontend allows this case)
Recommendations
[ ] userId not found
[ ] userId has no previous search history (i.e. cold start)
[ ] userId has search history that matches no listings
[ ] userId has search history that matches some listings
[ ] userId has search history with multiple words
[ ] userId has search history with multiple searches for same thing (ex: "bike", "yellow+bike", "green+bike","lamp") -> ensure each listing is only recommended once, and bikes are more recommended.
[ ] user can ignore a listing. (are all listings of same type ignored, or just the singular listing?)
higher level tests
[ ] check that searches are added to search history
[ ] check do not recommend persists for a user
[ ] check do not show charity persists for user
[ ] ensure recommendations updated as user searches for new things.
[ ] (requested by TA) test case for re-indexing: "you try to edit a listing to match to your keywords, after re-indexing, that listing is expected to shown in the search results."
Create Unit Tests to verify the functionality of the search and recommender features.