feat(search): Improve search functionality: update documentation, refine Lucene query transformation, and add advanced search tests
This commit is contained in:
@@ -221,6 +221,42 @@ tap.test('should search multi-word term across fields', async () => {
|
||||
expect(termResults[0].name).toEqual('iPhone 12');
|
||||
});
|
||||
|
||||
// Additional search scenarios
|
||||
tap.test('should return zero results for non-existent terms', async () => {
|
||||
const noResults = await Product.search('NonexistentTerm');
|
||||
expect(noResults.length).toEqual(0);
|
||||
});
|
||||
|
||||
tap.test('should search products by description term "noise"', async () => {
|
||||
const noiseResults = await Product.search('noise');
|
||||
expect(noiseResults.length).toEqual(1);
|
||||
expect(noiseResults[0].name).toEqual('AirPods');
|
||||
});
|
||||
|
||||
tap.test('should search products by description term "flagship"', async () => {
|
||||
const flagshipResults = await Product.search('flagship');
|
||||
expect(flagshipResults.length).toEqual(1);
|
||||
expect(flagshipResults[0].name).toEqual('Galaxy S21');
|
||||
});
|
||||
|
||||
tap.test('should search numeric strings "12"', async () => {
|
||||
const twelveResults = await Product.search('12');
|
||||
expect(twelveResults.length).toEqual(1);
|
||||
expect(twelveResults[0].name).toEqual('iPhone 12');
|
||||
});
|
||||
|
||||
tap.test('should search hyphenated terms "high-speed"', async () => {
|
||||
const hyphenResults = await Product.search('high-speed');
|
||||
expect(hyphenResults.length).toEqual(1);
|
||||
expect(hyphenResults[0].name).toEqual('Blender');
|
||||
});
|
||||
|
||||
tap.test('should search hyphenated terms "E-reader"', async () => {
|
||||
const ereaderResults = await Product.search('E-reader');
|
||||
expect(ereaderResults.length).toEqual(1);
|
||||
expect(ereaderResults[0].name).toEqual('Kindle Paperwhite');
|
||||
});
|
||||
|
||||
tap.test('close database connection', async () => {
|
||||
await testDb.mongoDb.dropDatabase();
|
||||
await testDb.close();
|
||||
|
Reference in New Issue
Block a user