Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- it('should correctly identify itself using the USER_AGENT in the request header', async () => {
- const secFetcher = new SECFetcher();
- const mockGet = jest.spyOn(axios, 'get').mockResolvedValue({ data: 'test data' });
- const url = 'https://www.sec.gov/test';
- const params = { param1: 'value1' };
- await secFetcher.request(url, params);
- expect(mockGet).toHaveBeenCalledWith(url, expect.objectContaining({
- headers: expect.objectContaining({
- })
- }));
- mockGet.mockRestore();
- });
- it('should use gzip compression in the request header', async () => {
- const secFetcher = new SECFetcher();
- const mockGet = jest.spyOn(axios, 'get').mockResolvedValue({ data: 'test data' });
- const url = 'https://www.sec.gov/test';
- const params = { param1: 'value1' };
- await secFetcher.request(url, params);
- expect(mockGet).toHaveBeenCalledWith(url, expect.objectContaining({
- headers: expect.objectContaining({
- 'Accept-Encoding': 'gzip, deflate, br'
- })
- }));
- mockGet.mockRestore();
- it('should handle multiple concurrent requests using requestBatch method', async () => {
- const secFetcher = new SECFetcher();
- const mockResponses = [
- { data: 'response 1' },
- { data: 'response 2' },
- { data: 'response 3' }
- ];
- const mockRequest = jest.spyOn(secFetcher, 'request')
- .mockImplementation((url, params) => Promise.resolve({ data: `response for ${url}` }));
- const urls = [
- { url: 'https://www.sec.gov/url1', params: { param1: 'value1' } },
- { url: 'https://www.sec.gov/url2', params: { param2: 'value2' } },
- { url: 'https://www.sec.gov/url3', params: { param3: 'value3' } }
- ];
- const result = await secFetcher.requestBatch(urls);
- expect(mockRequest).toHaveBeenCalledTimes(3);
- expect(mockRequest).toHaveBeenNthCalledWith(1, 'https://www.sec.gov/url1', { param1: 'value1' });
- expect(mockRequest).toHaveBeenNthCalledWith(2, 'https://www.sec.gov/url2', { param2: 'value2' });
- expect(mockRequest).toHaveBeenNthCalledWith(3, 'https://www.sec.gov/url3', { param3: 'value3' });
- expect(result).toEqual(['response for https://www.sec.gov/url1', 'response for https://www.sec.gov/url2', 'response for https://www.sec.gov/url3']);
- mockRequest.mockRestore();
- });
- it('should return an empty array if any request in requestBatch fails', async () => {
- const secFetcher = new SECFetcher();
- const mockRequest = jest.spyOn(secFetcher, 'request');
- mockRequest.mockResolvedValueOnce({ data: 'response 1' });
- mockRequest.mockRejectedValueOnce(new Error('Request failed'));
- mockRequest.mockResolvedValueOnce({ data: 'response 3' });
- const urls = [
- { url: 'https://www.sec.gov/url1', params: { param1: 'value1' } },
- { url: 'https://www.sec.gov/url2', params: { param2: 'value2' } },
- { url: 'https://www.sec.gov/url3', params: { param3: 'value3' } }
- ];
- const result = await secFetcher.requestBatch(urls);
- expect(mockRequest).toHaveBeenCalledTimes(3);
- expect(result).toEqual([]);
- mockRequest.mockRestore();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement