-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathquick_test.js
More file actions
145 lines (121 loc) · 4.62 KB
/
quick_test.js
File metadata and controls
145 lines (121 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/usr/bin/env node
/**
* NodeMaven JavaScript SDK - Quick Test
*
* This script quickly validates that the NodeMaven JavaScript SDK is working correctly.
* Similar to the Python quick_test.py functionality.
*/
const { NodeMavenClient } = require('./src');
async function testBasicFunctionality() {
console.log('🧪 NodeMaven JavaScript SDK - Quick Test\n');
try {
// Test 1: Client initialization
console.log('1️⃣ Testing client initialization...');
const client = new NodeMavenClient();
console.log('✅ Client initialized successfully');
// Test 2: API connectivity
console.log('\n2️⃣ Testing API connectivity...');
const userInfo = await client.getUserInfo();
console.log('✅ API connection successful');
console.log(` Username: ${userInfo.username}`);
console.log(` Proxy Username: ${userInfo.proxy_username}`);
// Test 3: Location data retrieval
console.log('\n3️⃣ Testing location data retrieval...');
const countries = await client.getCountries({ limit: 5 });
console.log(`✅ Retrieved ${countries.results.length} countries`);
countries.results.forEach((country, index) => {
console.log(` ${index + 1}. ${country.name} (${country.code})`);
});
// Test 4: Proxy configuration generation
console.log('\n4️⃣ Testing proxy configuration generation...');
const proxyConfig = await client.getProxyConfig({ country: 'US' });
console.log('✅ Proxy configuration generated successfully');
console.log(` Host: ${proxyConfig.host}`);
console.log(` HTTP Port: ${proxyConfig.http_port}`);
console.log(` Username: ${proxyConfig.username}`);
// Test 5: SOCKS5 URL generation
console.log('\n5️⃣ Testing SOCKS5 URL generation...');
const socks5Url = await client.getSocks5ProxyUrl({ country: 'UK' });
console.log('✅ SOCKS5 URL generated successfully');
console.log(` URL: ${socks5Url.substring(0, 50)}...`);
console.log('\n🎉 All tests passed! NodeMaven JavaScript SDK is working correctly.');
return true;
} catch (error) {
console.error('\n❌ Test failed:');
console.error(` Type: ${error.constructor.name}`);
console.error(` Message: ${error.message}`);
if (error.statusCode) {
console.error(` Status Code: ${error.statusCode}`);
}
return false;
}
}
async function checkEnvironment() {
console.log('🔧 Environment Check\n');
// Check Node.js version
const nodeVersion = process.version;
console.log(`Node.js Version: ${nodeVersion}`);
if (parseInt(nodeVersion.substring(1)) < 16) {
console.log('⚠️ Warning: Node.js 16+ is recommended');
} else {
console.log('✅ Node.js version is compatible');
}
// Check API key
const apiKey = process.env.NODEMAVEN_APIKEY;
if (apiKey) {
console.log('✅ NODEMAVEN_APIKEY environment variable is set');
} else {
console.log('❌ NODEMAVEN_APIKEY environment variable is not set');
console.log(' Please set your API key: export NODEMAVEN_APIKEY="your-key-here"');
return false;
}
console.log('');
return true;
}
async function main() {
const envOk = await checkEnvironment();
if (!envOk) {
console.log('❌ Environment check failed. Please fix the issues above.');
process.exit(1);
}
const testResult = await testBasicFunctionality();
if (!testResult) {
console.log('\n❌ Quick test failed. Please check your configuration.');
process.exit(1);
}
console.log('\n✅ Quick test completed successfully!');
console.log('\n📖 Next steps:');
console.log(' - Check out examples: node examples/basic_usage.js');
console.log(' - Read the documentation in README.md');
console.log(' - Visit: https://dashboard.nodemaven.com');
}
// Display usage information
function showUsage() {
console.log('NodeMaven JavaScript SDK - Quick Test');
console.log('');
console.log('Usage:');
console.log(' node quick_test.js');
console.log('');
console.log('Environment Variables:');
console.log(' NODEMAVEN_APIKEY Your NodeMaven API key (required)');
console.log(' NODEMAVEN_BASE_URL API base URL (optional)');
console.log('');
console.log('Get your API key at: https://dashboard.nodemaven.com');
}
// Run the quick test if this file is executed directly
if (require.main === module) {
// Show usage if --help is provided
if (process.argv.includes('--help') || process.argv.includes('-h')) {
showUsage();
process.exit(0);
}
main().catch(error => {
console.error('❌ Quick test execution failed:', error.message);
process.exit(1);
});
}
module.exports = {
testBasicFunctionality,
checkEnvironment,
main
};