website/cypress/integration/search.spec.js
const testSearchTerm = 'ggiibb'describe('Search', function () { describe('Input', function () { beforeEach(function () { cy.server() cy.route({ method: 'GET', url: Cypress.env('baseSearchUrl').replace('{searchTerm}', 'lambda'), response: 'fixture:lambda_search_results.json' }) cy.fixture('lambda_search_results.json').as('lambda_search_results') cy.visit('/') // get the input element, type lambda into it, verify the text is in the input cy.get('input') .type('lambda') .should('have.value', 'lambda') // submit the form to execute the search cy.get('form').submit() }) it('returns the correct results length', function () { cy.get('[data-item-type=search]').should( 'have.length', this.lambda_search_results['@odata.count'] ) }) it('returns empty results', function () {Identical blocks of code found in 2 locations. Consider refactoring. cy.route({ method: 'GET', url: Cypress.env('baseSearchUrl').replace( '{searchTerm}', `${testSearchTerm}` ), response: [] }) // This visit back the root is needed to avoid a race condition when // running with electron in headless mode. Issue #127 cy.visit('/') cy.get('input') .clear() .type(testSearchTerm) .should('have.value', testSearchTerm) cy.get('form').submit() cy.get('#resultText').contains(`0 results for ${testSearchTerm}`) cy.get('#noResults').contains('No results were found. Please try again.') }) Identical blocks of code found in 2 locations. Consider refactoring. it('can load the main page via back button', function () { cy.get('#root').click({ force: true }) cy.title().should('eq', 'qit: Tech podcasts by topic') cy.get('input').should( 'have.attr', 'placeholder', 'Search for a great podcast here!' ) }) Identical blocks of code found in 2 locations. Consider refactoring. it('can load main page directly', function () { cy.visit('/') cy.title().should('eq', 'qit: Tech podcasts by topic') cy.get('input').should( 'have.attr', 'placeholder', 'Search for a great podcast here!' ) }) }) describe('URL', function () { beforeEach(function () { cy.server() cy.route({ method: 'GET', url: Cypress.env('baseSearchUrl').replace('{searchTerm}', 'lambda'), response: 'fixture:lambda_search_results.json' }) cy.fixture('lambda_search_results.json').as('lambda_search_results') cy.visit('/search/lambda') }) it('returns the correct results length', function () { cy.get('[data-item-type=search]').should( 'have.length', this.lambda_search_results['@odata.count'] ) }) it('returns empty results', function () {Identical blocks of code found in 2 locations. Consider refactoring. cy.route({ method: 'GET', url: Cypress.env('baseSearchUrl').replace( '{searchTerm}', `${testSearchTerm}` ), response: [] }) cy.visit(`/search/${testSearchTerm}`) cy.get('#resultText').contains(`0 results for ${testSearchTerm}`) cy.get('#noResults').contains('No results were found. Please try again.') }) Identical blocks of code found in 2 locations. Consider refactoring. it('can load the main page via back button', function () { cy.get('#root').click({ force: true }) cy.title().should('eq', 'qit: Tech podcasts by topic') cy.get('input').should( 'have.attr', 'placeholder', 'Search for a great podcast here!' ) }) Identical blocks of code found in 2 locations. Consider refactoring. it('can load main page directly', function () { cy.visit('/') cy.title().should('eq', 'qit: Tech podcasts by topic') cy.get('input').should( 'have.attr', 'placeholder', 'Search for a great podcast here!' ) }) })})