Probé un puñado de cosas diferentes y reboté entre diferentes sugerencias sobre cuál podría ser el problema sin suerte. En última instancia, necesito probar ciertos aspectos de una aplicación que está detrás de un indicador de función al que se puede acceder con encabezados de solicitud.
Puede que esté tratando de lograr algo que no es posible con esta implementación, pero he adjuntado mi ejemplo de código a continuación y los registros generados a continuación. Esperaba que el encabezado agregado estuviera presente en la salida del registro.
Código:
class myRequestHook extends RequestHook { constructor () { super() } async onRequest (e) { e.requestOptions.headers['test-header'] = 'test-value' } async onResponse (e) { } } const customHook = new myRequestHook() const customLogger = RequestLogger('http://example.com', { logRequestHeaders: true }) fixture ('Request fixture') .page('http://example.com/') .requestHooks( [ customLogger, customHook ]) test('Request test', async () => { console.log(customLogger.requests[0].request.headers) })Registros:
{ host: 'example.com', connection: 'keep-alive', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"macOS"', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'navigate', 'sec-fetch-dest': 'document', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US,en;q=0.9' }RequestLogger de TestCafe registra solo los encabezados de solicitud originales, pero no los modificados. Sin embargo, esta línea de código definitivamente funciona.
e.requestOptions.headers['test-header'] = 'test-value' TestCafe modifica correctamente los encabezados de solicitud. Si desea registrar encabezados modificados, debe ampliar su implementación RequestHook .