Verify_India_API/scripts/test-setu-api-static.js

127 lines
4.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Static test script to verify Setu PAN API is working
* This script uses hardcoded values from the curl command
* Usage: node scripts/test-setu-api-static.js
*/
const axios = require('axios');
// Static values from the curl command
const SETU_API_URL = 'https://dg-sandbox.setu.co/api/verify/pan';
const CLIENT_ID = '292c6e76-dabf-49c4-8e48-90fba2916673';
const CLIENT_SECRET = '7IZMe9zvoBBuBukLiCP7n4KLwSOy11oP';
const PRODUCT_INSTANCE_ID = '439244ff-114e-41a8-ae74-a783f160622d';
const REQUEST_BODY = {
pan: 'ABCDE1234A',
consent: 'Y',
reason: 'Testing'
};
async function testSetuAPI() {
console.log('\n🧪 Testing Setu PAN API with Static Values\n');
console.log('='.repeat(70));
console.log('\n📋 Request Details:');
console.log(` URL: ${SETU_API_URL}`);
console.log(` Method: POST`);
console.log(` Headers:`);
console.log(` - Content-Type: application/json`);
console.log(` - x-client-id: ${CLIENT_ID}`);
console.log(` - x-client-secret: ${CLIENT_SECRET.substring(0, 8)}...`);
console.log(` - x-product-instance-id: ${PRODUCT_INSTANCE_ID}`);
console.log(` Body:`, JSON.stringify(REQUEST_BODY, null, 2));
console.log('\n🚀 Sending request to Setu API...\n');
try {
const startTime = Date.now();
const response = await axios.post(
SETU_API_URL,
REQUEST_BODY,
{
headers: {
'Content-Type': 'application/json',
'x-client-id': CLIENT_ID,
'x-client-secret': CLIENT_SECRET,
'x-product-instance-id': PRODUCT_INSTANCE_ID
},
timeout: 30000 // 30 seconds
}
);
const endTime = Date.now();
const duration = endTime - startTime;
console.log('✅ SUCCESS! API is working correctly!\n');
console.log('='.repeat(70));
console.log('\n📊 Response Details:');
console.log(` Status Code: ${response.status} ${response.statusText}`);
console.log(` Response Time: ${duration}ms`);
console.log(` Response Headers:`, JSON.stringify(response.headers, null, 2));
console.log(`\n📦 Response Body:`);
console.log(JSON.stringify(response.data, null, 2));
// Check if response has expected structure
if (response.data && response.data.data) {
console.log('\n✅ Response structure is valid!');
if (response.data.data.full_name) {
console.log(` PAN Holder Name: ${response.data.data.full_name}`);
}
if (response.data.message) {
console.log(` Message: ${response.data.message}`);
}
}
console.log('\n' + '='.repeat(70));
console.log('\n✅ Test completed successfully!\n');
} catch (error) {
console.log('❌ ERROR! API request failed!\n');
console.log('='.repeat(70));
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
console.log('\n📊 Error Response Details:');
console.log(` Status Code: ${error.response.status} ${error.response.statusText}`);
console.log(` Response Headers:`, JSON.stringify(error.response.headers, null, 2));
console.log(`\n📦 Error Response Body:`);
console.log(JSON.stringify(error.response.data, null, 2));
console.log('\n⚠ Possible Issues:');
if (error.response.status === 401) {
console.log(' - Invalid credentials (client-id or client-secret)');
} else if (error.response.status === 403) {
console.log(' - Access forbidden (check product-instance-id)');
} else if (error.response.status === 400) {
console.log(' - Bad request (check PAN format or request body)');
} else if (error.response.status === 404) {
console.log(' - Endpoint not found (check API URL)');
} else if (error.response.status >= 500) {
console.log(' - Server error (Setu API might be down)');
}
} else if (error.request) {
// The request was made but no response was received
console.log('\n⚠ No response received from server');
console.log(` Error: ${error.message}`);
console.log('\n Possible Issues:');
console.log(' - Network connectivity problem');
console.log(' - API endpoint is unreachable');
console.log(' - Request timeout (took longer than 30 seconds)');
} else {
// Something happened in setting up the request that triggered an Error
console.log(`\n⚠️ Request setup error: ${error.message}`);
}
console.log('\n' + '='.repeat(70));
console.log('\n❌ Test failed!\n');
process.exit(1);
}
}
// Run the test
testSetuAPI();