import { afterEach, describe, expect, it, vi } from 'vitest' import { fetchAllSeoDiscoveryEvents } from '@/lib/seo/serverApi' describe('fetchAllSeoDiscoveryEvents', () => { afterEach(() => { vi.unstubAllEnvs() vi.unstubAllGlobals() }) it('loads every API page while excluding seed placeholders', async () => { vi.stubEnv('NEXT_PUBLIC_API_URL', 'https://example.test/api/v1') const fetchMock = vi.fn(async (input: string | URL | Request) => { const url = new URL(String(input)) const page = Number(url.searchParams.get('page')) const items = page === 1 ? [ { slug: 'real-event-one', title: 'رویداد اول' }, { slug: 'generated-seed123', title: 'Seed event' }, ] : [{ slug: 'real-event-two', title: 'رویداد دوم' }] return { ok: true, status: 200, json: async () => ({ success: true, data: { items, response: { totalItemsCount: 3 }, }, }), } as Response }) vi.stubGlobal('fetch', fetchMock) const events = await fetchAllSeoDiscoveryEvents(2) expect(fetchMock).toHaveBeenCalledTimes(2) expect(events.map((event) => event.slug)).toEqual(['real-event-one', 'real-event-two']) }) })