040655912c
- Fix Next.js 15 params requirement (await params) - Add minimal test for route redirect behavior - Test verifies all 4 verticals redirect correctly
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
/**
|
|
* Simple test for /demos/[vertical] route
|
|
* Tests that the dynamic route properly handles vertical params and redirects
|
|
*/
|
|
|
|
const VERTICALS = ['restaurant', 'real-estate', 'clinic', 'car-rental'];
|
|
|
|
const BASE_URL = process.env.TEST_BASE_URL || 'http://localhost:1284';
|
|
|
|
async function testRoute(vertical) {
|
|
const response = await fetch(`${BASE_URL}/demos/${vertical}`, {
|
|
redirect: 'manual' // Don't follow redirect, just get the location
|
|
});
|
|
|
|
// Should return a 307 redirect (temporary redirect in Next.js)
|
|
if (response.status !== 307 && response.status !== 302) {
|
|
throw new Error(`Expected 307/302 for /demos/${vertical}, got ${response.status}`);
|
|
}
|
|
|
|
// Should redirect to /demos?vertical=<vertical>
|
|
const location = response.headers.get('location');
|
|
if (!location || !location.includes(`/demos?vertical=${vertical}`)) {
|
|
throw new Error(`Expected redirect to /demos?vertical=${vertical}, got ${location}`);
|
|
}
|
|
|
|
console.log(`✓ /demos/${vertical} redirects to ${location}`);
|
|
return true;
|
|
}
|
|
|
|
async function runTests() {
|
|
console.log('Testing /demos/[vertical] route...\n');
|
|
|
|
let passed = 0;
|
|
let failed = 0;
|
|
|
|
for (const vertical of VERTICALS) {
|
|
try {
|
|
await testRoute(vertical);
|
|
passed++;
|
|
} catch (error) {
|
|
console.error(`✗ /demos/${vertical} failed: ${error.message}`);
|
|
failed++;
|
|
}
|
|
}
|
|
|
|
console.log(`\nResults: ${passed} passed, ${failed} failed`);
|
|
|
|
if (failed > 0) {
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
runTests();
|