diff --git a/e2e/integration/search.e2e.ts b/e2e/integration/search.e2e.ts index ccf2ff14..35b30dbb 100644 --- a/e2e/integration/search.e2e.ts +++ b/e2e/integration/search.e2e.ts @@ -20,12 +20,6 @@ describe('Search', () => { .first() .should('contain', 'Introduction'); - getSearchInput().clear().type('uploadImage', { force: true }); - cy.get('[role=search] [role=menuitem]') - .should('have.length', 1) - .first() - .should('contain', 'uploads an image'); - getSearchInput().type('{esc}', { force: true }); getSearchResults().should('not.exist'); }); @@ -65,4 +59,20 @@ describe('Search', () => { getSearchInput().type('xzss', { force: true }); getSearchResults().should('exist').should('contain', 'No results found'); }); + + it('should allow search by path or keywords in path', () => { + getSearchInput().clear().type('uploadImage', { force: true }); + cy.get('[role=search] [role=menuitem]') + .should('have.length', 1) + .first() + .should('contain', 'uploads an image'); + + getSearchInput() + .clear() + .type('/pet/{petId}/uploadImage', { force: true, parseSpecialCharSequences: false }); + cy.get('[role=search] [role=menuitem]') + .should('have.length', 1) + .first() + .should('contain', 'uploads an image'); + }); }); diff --git a/src/services/SearchWorker.worker.ts b/src/services/SearchWorker.worker.ts index 764370f1..5b535656 100644 --- a/src/services/SearchWorker.worker.ts +++ b/src/services/SearchWorker.worker.ts @@ -37,7 +37,10 @@ function initEmpty() { initEmpty(); -const expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*'; +const expandTerm = term => { + const token = lunr.trimmer(new lunr.Token(term, {})); + return '*' + lunr.stemmer(token) + '*'; +}; export function add(title: string, description: string, meta?: T) { const ref = store.push(meta) - 1;