- Fixed response.init.status → response.status
- Fixed response.init.headers → response.headers.get()
- All TypeScript type checks now pass ✅
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
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>');
|
|
expect(response.headers.get('Content-Type')).toBe('application/xml');
|
|
});
|
|
}); |