| import { afterEach, describe, expect, it, vi } from 'vitest'; |
|
|
| afterEach(() => { |
| vi.resetModules(); |
| vi.clearAllMocks(); |
| vi.unmock('header-generator'); |
| }); |
|
|
| describe('header-generator (mocked)', () => { |
| it('retries invalid safari user agents', async () => { |
| const headersQueue = [{ 'user-agent': 'Mozilla/5.0 Applebot Safari' }, { 'user-agent': 'Mozilla/5.0 Safari' }]; |
|
|
| vi.doMock('header-generator', () => ({ |
| HeaderGenerator: class { |
| getHeaders() { |
| return headersQueue.shift() ?? { 'user-agent': 'Mozilla/5.0 Safari' }; |
| } |
| }, |
| PRESETS: { |
| MODERN_MACOS_CHROME: { mock: true }, |
| }, |
| })); |
|
|
| const { generateHeaders } = await import('@/utils/header-generator'); |
| const headers = generateHeaders({ preset: 'safari' } as any); |
|
|
| expect(headers['user-agent']).toContain('Safari'); |
| expect(headersQueue.length).toBe(0); |
| }); |
|
|
| it('accepts firefox user agents', async () => { |
| const headersQueue = [{ 'user-agent': 'Mozilla/5.0 Firefox' }]; |
|
|
| vi.doMock('header-generator', () => ({ |
| HeaderGenerator: class { |
| getHeaders() { |
| return headersQueue.shift() ?? { 'user-agent': 'Mozilla/5.0 Firefox' }; |
| } |
| }, |
| PRESETS: { |
| MODERN_MACOS_CHROME: { mock: true }, |
| }, |
| })); |
|
|
| const { generateHeaders } = await import('@/utils/header-generator'); |
| const headers = generateHeaders(); |
|
|
| expect(headers['user-agent']).toContain('Firefox'); |
| }); |
| }); |
|
|