import { render, screen, fireEvent } from '@testing-library/react'; import DocumentInput from '../../components/DocumentInput'; describe('DocumentInput', () => { beforeEach(() => { global.fetch = jest.fn(); }); test('submits URL when button is clicked', async () => { const mockFetch = global.fetch as jest.Mock; mockFetch.mockResolvedValueOnce({ ok: true, json: async () => ({ status: 'received' }), }); render(); const input = screen.getByLabelText('Source Documentation'); const button = screen.getByText('Pull Source Docs'); await fireEvent.change(input, { target: { value: 'https://example.com' } }); await fireEvent.click(button); expect(mockFetch).toHaveBeenCalledWith('http://localhost:8000/crawl/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://example.com' }), }); }); });