import '@testing-library/jest-dom';
import { GET } from '@/app/sitemap.xml/route';
import { mockFetch } from '@/app/__tests__/__mocks__/mock-fetch-sitemap';

jest.mock('next/server', () => ({
  NextResponse: jest.fn().mockImplementation((body, init) => ({ body, init })),
}));

describe('Sitemap Component', () => {
  beforeAll(() => {
    process.env.NEXT_PUBLIC_BASE_URL = 'https://dki.one';
    global.fetch = mockFetch(`
      <urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
        <url>
          <loc>https://dki.one/</loc>	
        </url>
        <url>
          <loc>https://dki.one/legal-notice</loc>
        </url>
        <url>
          <loc>https://dki.one/privacy-policy</loc>
        </url>
        <url>
          <loc>https://dki.one/projects/just-doing-some-testing</loc>
        </url>
        <url>
          <loc>https://dki.one/projects/blockchain-based-voting-system</loc>
        </url>
      </urlset>
    `);
  });

  it('should render the sitemap XML', async () => {
    const response = await GET();

    expect(response.body).toContain('<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">');
    expect(response.body).toContain('<loc>https://dki.one/</loc>');
    expect(response.body).toContain('<loc>https://dki.one/legal-notice</loc>');
    expect(response.body).toContain('<loc>https://dki.one/privacy-policy</loc>');
    expect(response.body).toContain('<loc>https://dki.one/projects/just-doing-some-testing</loc>');
    expect(response.body).toContain('<loc>https://dki.one/projects/blockchain-based-voting-system</loc>');
    // Note: Headers are not available in test environment
  });
});