UNPKG

rsshub

Version:
95 lines (75 loc) 2.5 kB
import { getCurrentCell, setCurrentCell } from 'node-network-devtools'; import { useCustomHeader } from './fetch'; import { describe, beforeEach, afterEach, test, expect } from 'vitest'; const getInitRequest = () => ({ requestHeaders: {} as Record<string, string>, id: '', loadCallFrames: () => {}, cookies: '', requestData: '', responseData: '', responseHeaders: {}, responseInfo: {}, }) satisfies NonNullable<ReturnType<typeof getCurrentCell>>['request']; enum Env { dev = 'dev', production = 'production', test = 'test', } describe('useCustomHeader', () => { let originalEnv: string; beforeEach(() => { originalEnv = process.env.NODE_ENV || Env.test; process.env.ENABLE_REMOTE_DEBUGGING = 'true'; }); afterEach(() => { process.env.NODE_ENV = originalEnv; }); test('should register request with custom headers in dev environment', () => { process.env.NODE_ENV = Env.dev; const headers = new Headers(); const headerText = 'authorization'; const headerValue = 'Bearer token'; headers.set(headerText, headerValue); const req = getInitRequest(); setCurrentCell({ request: req, pipes: [], isAborted: false, }); useCustomHeader(headers); const cell = getCurrentCell(); expect(cell).toBeDefined(); let request = req; if (cell) { for (const { pipe } of cell.pipes) { request = pipe(request); } } expect(request.requestHeaders[headerText]).toEqual(headerValue); }); test('should not register request in non-dev environment', () => { process.env.NODE_ENV = Env.production; const headers = new Headers(); const headerText = 'content-type'; const headerValue = 'application/json'; headers.set(headerText, headerValue); const req = getInitRequest(); setCurrentCell({ request: req, pipes: [], isAborted: false, }); useCustomHeader(headers); const cell = getCurrentCell(); expect(cell).toBeDefined(); let request = req; if (cell) { for (const { pipe } of cell.pipes) { request = pipe(request); } } expect(req.requestHeaders[headerText]).toBeUndefined(); }); });