refactor of data-service
This commit is contained in:
parent
6fb98c69f2
commit
09c97df1a8
49 changed files with 2394 additions and 112 deletions
135
test-network-debug.ts
Normal file
135
test-network-debug.ts
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
/**
|
||||
* Debug network monitoring setup
|
||||
*/
|
||||
import { Browser } from '@stock-bot/browser';
|
||||
|
||||
async function debugNetworkSetup() {
|
||||
console.log('🐛 Debugging Network Monitoring Setup...');
|
||||
|
||||
try {
|
||||
await Browser.initialize({
|
||||
headless: true,
|
||||
timeout: 10000,
|
||||
blockResources: false, // Ensure we don't block requests
|
||||
});
|
||||
|
||||
// Create page but don't navigate yet
|
||||
const { page, contextId } = await Browser.createPageWithProxy(
|
||||
'',
|
||||
'http://doimvbnb-US-rotate:w5fpiwrb9895@p.webshare.io:80'
|
||||
);
|
||||
|
||||
let eventCount = 0;
|
||||
console.log('📡 Setting up network event listener...');
|
||||
|
||||
page.onNetworkEvent(event => {
|
||||
eventCount++;
|
||||
console.log(`🔔 Event ${eventCount}: ${event.type} ${event.method} ${event.url}`);
|
||||
console.log(` Headers: ${Object.keys(event.headers || {}).length} headers`);
|
||||
|
||||
if (event.responseData) {
|
||||
console.log(` Data: ${event.responseData.substring(0, 100)}...`);
|
||||
}
|
||||
});
|
||||
|
||||
console.log('🌐 Navigating to httpbin.org/headers...');
|
||||
await page.goto('https://httpbin.org/headers');
|
||||
|
||||
console.log('⏳ Waiting for page load...');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
|
||||
console.log('⏳ Waiting additional time for network events...');
|
||||
await new Promise(resolve => setTimeout(resolve, 3000));
|
||||
|
||||
console.log(`📊 Total events captured: ${eventCount}`);
|
||||
|
||||
// Try to evaluate page content to see if it loaded
|
||||
const title = await page.title();
|
||||
console.log(`📄 Page title: "${title}"`);
|
||||
|
||||
const bodyText = await page.locator('body').textContent();
|
||||
if (bodyText) {
|
||||
console.log(`📝 Page content (first 200 chars): ${bodyText.substring(0, 200)}...`);
|
||||
}
|
||||
|
||||
await Browser.closeContext(contextId);
|
||||
return eventCount > 0;
|
||||
} catch (error) {
|
||||
console.error('❌ Debug test failed:', error);
|
||||
return false;
|
||||
} finally {
|
||||
await Browser.close();
|
||||
}
|
||||
}
|
||||
|
||||
async function testManualNetworkCall() {
|
||||
console.log('\n🔧 Testing with manual fetch call...');
|
||||
|
||||
try {
|
||||
await Browser.initialize({
|
||||
headless: true,
|
||||
timeout: 10000,
|
||||
blockResources: false,
|
||||
});
|
||||
|
||||
const { page, contextId } = await Browser.createPageWithProxy(
|
||||
'https://www.interactivebrokers.com/webrest/search/product-types/summary',
|
||||
'http://doimvbnb-US-rotate:w5fpiwrb9895@p.webshare.io:80'
|
||||
);
|
||||
|
||||
let eventCount = 0;
|
||||
page.onNetworkEvent(event => {
|
||||
eventCount++;
|
||||
console.log(`📡 Manual test event ${eventCount}: ${event.type} ${event.method} ${event.url}`);
|
||||
if (event.responseData && event.url.includes('httpbin')) {
|
||||
console.log(` 📊 Response: ${event.responseData}`);
|
||||
}
|
||||
});
|
||||
|
||||
// Navigate to a simple page first
|
||||
await page.goto('data:text/html,<html><body><h1>Test Page</h1></body></html>');
|
||||
await page.waitForLoadState('domcontentloaded');
|
||||
|
||||
console.log('🚀 Making manual fetch call...');
|
||||
// Make a fetch request from the page context
|
||||
const result = await page.evaluate(async () => {
|
||||
try {
|
||||
const response = await fetch('https://httpbin.org/json');
|
||||
const data = await response.json();
|
||||
return { success: true, data };
|
||||
} catch (error) {
|
||||
return { success: false, error: error.message };
|
||||
}
|
||||
});
|
||||
|
||||
console.log('📋 Fetch result:', result);
|
||||
|
||||
await new Promise(resolve => setTimeout(resolve, 2000));
|
||||
console.log(`📊 Events from manual fetch: ${eventCount}`);
|
||||
|
||||
await Browser.closeContext(contextId);
|
||||
return eventCount > 0;
|
||||
} catch (error) {
|
||||
console.error('❌ Manual test failed:', error);
|
||||
return false;
|
||||
} finally {
|
||||
await Browser.close();
|
||||
}
|
||||
}
|
||||
|
||||
async function runDebugTests() {
|
||||
console.log('🚀 Network Monitoring Debug Tests\n');
|
||||
|
||||
const setupResult = await debugNetworkSetup();
|
||||
const manualResult = await testManualNetworkCall();
|
||||
|
||||
console.log(`\n🏁 Results:`);
|
||||
console.log(` 🔧 Setup test: ${setupResult ? '✅ EVENTS CAPTURED' : '❌ NO EVENTS'}`);
|
||||
console.log(` 📡 Manual test: ${manualResult ? '✅ EVENTS CAPTURED' : '❌ NO EVENTS'}`);
|
||||
}
|
||||
|
||||
if (import.meta.main) {
|
||||
runDebugTests().catch(console.error);
|
||||
}
|
||||
|
||||
export { debugNetworkSetup, testManualNetworkCall };
|
||||
Loading…
Add table
Add a link
Reference in a new issue