File size: 957 Bytes
58973c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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(<DocumentInput />);
    
    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' }),
    });
  });
});