import type { QueryDevtoolsRequest } from './devtools'; import { QUERY_DEVTOOLS_HEADER, maybeInjectQueryDevtoolsBootstrap, shouldEnableQueryDevtools, } from './devtools'; const createReq = (value?: string): QueryDevtoolsRequest => ({ get: (header) => (header === QUERY_DEVTOOLS_HEADER ? value : undefined), }); describe('query devtools HTML bootstrap', () => { const html = 'LibreChat'; it('uses the documented debug header value as the opt-in signal', () => { expect(shouldEnableQueryDevtools(createReq('1'))).toBe(true); expect(shouldEnableQueryDevtools(createReq('true'))).toBe(false); expect(shouldEnableQueryDevtools(createReq())).toBe(false); }); it('does not inject the production devtools flag by default', () => { expect(maybeInjectQueryDevtoolsBootstrap(html, createReq())).toBe(html); }); it('injects a server-to-client flag when the debug header is present', () => { const updatedHtml = maybeInjectQueryDevtoolsBootstrap(html, createReq('1')); expect(updatedHtml).toContain('window.__LIBRECHAT_CONFIG__'); expect(updatedHtml).toContain('data-librechat-query-devtools="true"'); expect(updatedHtml).toContain('"enableQueryDevtools":true'); expect(updatedHtml.indexOf('enableQueryDevtools')).toBeLessThan(updatedHtml.indexOf('')); }); });