11import { expect , test } from '@playwright/test' ;
2+ import { mockCoveoCredentials , mockCoveoData } from './mock' ;
23import {
34 buildURLFragment ,
45 handleConsentPopup ,
@@ -15,47 +16,12 @@ async function submitSearchQuery(page, query) {
1516 await page . waitForSelector ( '#search-v2' ) ;
1617}
1718
18- async function mockCoveo ( page , request ) {
19- // Get credentials
20- const tokenBaseURL = 'https://docs-dev.nginx.com' ;
21- const tokenEndpoint = '/api/v1/auth/search_token' ;
22- const username = process . env . FRONT_DOOR_USERNAME ;
23- const password = process . env . FRONT_DOOR_PASSWORD ;
24- const response = await request . get ( tokenBaseURL + tokenEndpoint , {
25- headers : {
26- Authorization :
27- 'Basic ' + Buffer . from ( `${ username } :${ password } ` ) . toString ( 'base64' ) ,
28- } ,
29- } ) ;
30-
31- expect ( response . ok ( ) ) . toBeTruthy ( ) ;
32- expect ( response . status ( ) ) . toBe ( 200 ) ;
33-
34- const credentials = await response . json ( ) ;
35-
36- // Mock the local request to be successful, then reload the page.
37- await page . route ( `**${ tokenEndpoint } ` , async ( route ) => {
38- await route . fulfill ( {
39- status : 200 ,
40- contentType : 'application/json' ,
41- body : JSON . stringify ( credentials ) ,
42- } ) ;
43- } ) ;
44- await page . reload ( ) ;
45- }
46-
47- const mockData = {
48- validQuery : 'proxy' ,
49- invalidQuery : 'abcdefghijkl' ,
50- filters : [ 'numberOfResults=100' , 'sortCriteria=date descending' ] ,
51- } ;
52-
5319test . describe ( 'Coveo test' , ( ) => {
5420 test . beforeEach ( async ( { page, request } ) => {
5521 await page . goto ( '/' ) ;
5622 await page . waitForLoadState ( 'load' ) ;
5723 await waitFor ( async ( ) => await handleConsentPopup ( page ) ) ;
58- await mockCoveo ( page , request ) ;
24+ await mockCoveoCredentials ( page , request ) ;
5925 } ) ;
6026
6127 test . afterEach ( async ( { page } ) => {
@@ -66,11 +32,11 @@ test.describe('Coveo test', () => {
6632 } ) ;
6733
6834 test ( 'valid search query' , async ( { page } ) => {
69- await submitSearchQuery ( page , mockData . validQuery ) ;
35+ await submitSearchQuery ( page , mockCoveoData . validQuery ) ;
7036 } ) ;
7137
7238 test ( 'invalid search query' , async ( { page } ) => {
73- await submitSearchQuery ( page , mockData . invalidQuery ) ;
39+ await submitSearchQuery ( page , mockCoveoData . invalidQuery ) ;
7440 const resultsPage = page . getByTestId ( 'search-results-page' ) ;
7541 const main = resultsPage . locator ( 'atomic-layout-section[section="main"]' ) ;
7642 const noResultsMessage = main . locator ( '[part="no-results"]' ) ;
@@ -80,7 +46,7 @@ test.describe('Coveo test', () => {
8046 test ( 'inbound link do not reset URL' , async ( { page } ) => {
8147 // Use ONLY generic filters. Do not add any product specific filters, particularly from the facet.
8248 // If these basic filters work, then its safe to assume, adding facet filters will not reset the URL.
83- const endpoint = `/search.html#q=${ mockData . validQuery } ${ buildURLFragment ( mockData . filters ) } ` ;
49+ const endpoint = `/search.html#q=${ mockCoveoData . validQuery } ${ buildURLFragment ( mockCoveoData . filters ) } ` ;
8450 await page . goto ( endpoint ) ;
8551 await page . waitForSelector ( '#search-v2' ) ;
8652
0 commit comments