Files
MinglarBackendNestJS/test-stepper-handler.ts

123 lines
3.6 KiB
TypeScript
Raw Permalink Normal View History

2025-11-13 15:56:13 +05:30
/**
* Test script for stepper handler
* Run with: npx ts-node test-stepper-handler.ts
*/
import { PrismaClient } from '@prisma/client';
import * as jwt from 'jsonwebtoken';
const prisma = new PrismaClient();
async function testStepperHandler() {
console.log('🧪 Testing Stepper Handler...\n');
try {
// 1. Find a host user with HostHeader data
console.log('📍 Step 1: Finding host user with HostHeader...');
const hostUser = await prisma.user.findFirst({
where: { roleXid: 4 },
include: {
HostHeader: {
select: {
id: true,
stepper: true,
hostRefNumber: true,
companyName: true,
},
},
},
});
if (!hostUser) {
console.log('❌ No host user found (roleXid=4) in database.');
return;
}
if (!hostUser.HostHeader || hostUser.HostHeader.length === 0) {
console.log('⚠️ Host user found but no HostHeader records.');
console.log(` User ID: ${hostUser.id}, Email: ${hostUser.emailAddress}`);
return;
}
const hostHeader = hostUser.HostHeader[0];
console.log(`✅ Found host user and HostHeader\n`);
console.log(` User ID: ${hostUser.id}`);
console.log(` Email: ${hostUser.emailAddress}`);
console.log(` First Name: ${hostUser.firstName}`);
console.log(` Host ID: ${hostHeader.id}`);
console.log(` Company: ${hostHeader.companyName}`);
console.log(` Ref Number: ${hostHeader.hostRefNumber}`);
console.log(` Current Stepper: ${hostHeader.stepper}\n`);
// 2. Simulate what the handler returns
console.log('📍 Step 2: Simulating handler response...\n');
const stepDescriptions: { [key: number]: string } = {
1: 'Basic Company Information',
2: 'Company Documents & Verification',
3: 'Bank & Payment Details',
4: 'Activities Setup',
5: 'Pricing & Services',
6: 'Review & Approval',
7: 'Active & Live',
};
const stepperDescription =
stepDescriptions[hostHeader.stepper] || 'Unknown Step';
const response = {
success: true,
message: 'Stepper information retrieved successfully',
data: {
user: {
id: hostUser.id,
firstName: hostUser.firstName,
lastName: hostUser.lastName,
emailAddress: hostUser.emailAddress,
roleXid: hostUser.roleXid,
},
stepper: {
hostId: hostHeader.id,
currentStep: hostHeader.stepper,
stepperDescription: stepperDescription,
},
},
};
console.log('✅ Handler Response:\n');
console.log(JSON.stringify(response, null, 2));
// 3. Verify stepper value is numeric
console.log('\n📍 Step 3: Validation checks...\n');
if (typeof hostHeader.stepper !== 'number') {
console.log('❌ Stepper is not a number');
return;
}
console.log('✅ Stepper is numeric:', hostHeader.stepper);
if (hostHeader.stepper < 1 || hostHeader.stepper > 7) {
console.log(
'⚠️ Stepper value is out of expected range (1-7):',
hostHeader.stepper
);
} else {
console.log('✅ Stepper value in valid range (1-7)');
}
if (!stepperDescription.includes('Unknown')) {
console.log('✅ Stepper description found:', stepperDescription);
} else {
console.log('⚠️ Unknown stepper value');
}
console.log('\n✅ Test passed! Handler is working correctly.');
} catch (error) {
console.error('❌ Test error:', error);
} finally {
await prisma.$disconnect();
}
}
testStepperHandler();