| 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'); | |
| }); | |
| }); | |