allow user to easily override location with text entry.
This commit is contained in:
parent
49164da105
commit
b91fc7b016
@ -23,6 +23,16 @@
|
|||||||
}
|
}
|
||||||
button:hover { background: #0757c7; }
|
button:hover { background: #0757c7; }
|
||||||
button:disabled { background: #ccc; cursor: not-allowed; }
|
button:disabled { background: #ccc; cursor: not-allowed; }
|
||||||
|
.server-input {
|
||||||
|
margin: 10px 0;
|
||||||
|
padding: 8px;
|
||||||
|
width: 300px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
.input-group { margin: 15px 0; }
|
||||||
|
.input-group label { display: block; margin-bottom: 5px; font-weight: bold; }
|
||||||
#output {
|
#output {
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
@ -43,6 +53,12 @@
|
|||||||
<p><strong>Status:</strong> <span id="status">Loading WASM module...</span></p>
|
<p><strong>Status:</strong> <span id="status">Loading WASM module...</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="input-group">
|
||||||
|
<label for="server-url">Server URL:</label>
|
||||||
|
<input type="text" id="server-url" class="server-input" value="ws://localhost:3000/ws"
|
||||||
|
placeholder="ws://localhost:3000/ws">
|
||||||
|
</div>
|
||||||
|
|
||||||
<button id="test-btn" disabled>Run WASM Test</button>
|
<button id="test-btn" disabled>Run WASM Test</button>
|
||||||
<button id="clear-btn">Clear Output</button>
|
<button id="clear-btn">Clear Output</button>
|
||||||
|
|
||||||
@ -111,9 +127,11 @@
|
|||||||
|
|
||||||
testBtn.onclick = () => {
|
testBtn.onclick = () => {
|
||||||
testBtn.disabled = true;
|
testBtn.disabled = true;
|
||||||
|
const serverUrl = document.getElementById('server-url').value.trim();
|
||||||
addLog('=== Starting WASM Test ===', 'info');
|
addLog('=== Starting WASM Test ===', 'info');
|
||||||
|
addLog(`🌐 Using server: ${serverUrl}`, 'info');
|
||||||
try {
|
try {
|
||||||
test_socktop_connector();
|
test_socktop_connector(serverUrl || undefined);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
testBtn.disabled = false;
|
testBtn.disabled = false;
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|||||||
@ -16,13 +16,17 @@ macro_rules! console_log {
|
|||||||
|
|
||||||
// This is the main entry point called from JavaScript
|
// This is the main entry point called from JavaScript
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
pub fn test_socktop_connector() {
|
pub fn test_socktop_connector(server_url: Option<String>) {
|
||||||
console_error_panic_hook::set_once();
|
console_error_panic_hook::set_once();
|
||||||
|
|
||||||
|
// Use provided URL or default
|
||||||
|
let url = server_url.unwrap_or_else(|| "ws://localhost:3000/ws".to_string());
|
||||||
|
|
||||||
console_log!("🦀 Starting WASM connector test...");
|
console_log!("🦀 Starting WASM connector test...");
|
||||||
|
console_log!("🌐 Connecting to: {}", url);
|
||||||
|
|
||||||
// Test 1: Create configuration
|
// Test 1: Create configuration
|
||||||
let config = ConnectorConfig::new("ws://localhost:3000/ws");
|
let config = ConnectorConfig::new(&url);
|
||||||
console_log!("✅ Config created: {}", config.url);
|
console_log!("✅ Config created: {}", config.url);
|
||||||
|
|
||||||
// Test 2: Test configuration methods
|
// Test 2: Test configuration methods
|
||||||
|
|||||||
@ -39,6 +39,20 @@
|
|||||||
|
|
||||||
<p>This test demonstrates that <code>socktop_connector</code> works properly in WebAssembly with real WebSocket connections.</p>
|
<p>This test demonstrates that <code>socktop_connector</code> works properly in WebAssembly with real WebSocket connections.</p>
|
||||||
|
|
||||||
|
<div style="margin: 20px 0; padding: 15px; background: #f9f9f9; border-radius: 4px;">
|
||||||
|
<label for="serverUrl" style="display: block; font-weight: bold; margin-bottom: 5px;">
|
||||||
|
🌐 WebSocket Server URL:
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="serverUrl"
|
||||||
|
value="ws://localhost:3000/ws"
|
||||||
|
style="width: 300px; padding: 8px; margin-right: 10px; border: 1px solid #ccc; border-radius: 4px;"
|
||||||
|
placeholder="ws://your-server:port/ws"
|
||||||
|
/>
|
||||||
|
<small style="color: #666;">Edit if your socktop_agent is running on a different host/port</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<button onclick="runTest()">Run Test</button>
|
<button onclick="runTest()">Run Test</button>
|
||||||
<button onclick="clearLog()">Clear Log</button>
|
<button onclick="clearLog()">Clear Log</button>
|
||||||
@ -47,22 +61,6 @@
|
|||||||
<h2>Test Output:</h2>
|
<h2>Test Output:</h2>
|
||||||
<div id="log" class="log">Click "Run Test" to start...\n</div>
|
<div id="log" class="log">Click "Run Test" to start...\n</div>
|
||||||
|
|
||||||
<h2>Test Details:</h2>
|
|
||||||
<ul>
|
|
||||||
<li>✅ Uses real <code>socktop_connector::SocktopConnector</code> API</li>
|
|
||||||
<li>✅ Makes actual WebSocket connections to socktop agents</li>
|
|
||||||
<li>✅ Calls real API methods: <code>get_metrics()</code>, <code>get_disks()</code>, <code>get_processes()</code></li>
|
|
||||||
<li>✅ No fake data or browser-specific workarounds</li>
|
|
||||||
<li>✅ Full end-to-end test of socktop_connector in WASM</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p><strong>Prerequisites:</strong></p>
|
|
||||||
<ul>
|
|
||||||
<li>✅ socktop_agent running on localhost:3000</li>
|
|
||||||
<li>✅ WebSocket connection allowed (no CORS issues)</li>
|
|
||||||
<li>✅ WASM module properly compiled and loaded</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import init, { test_socktop_connector } from './pkg/socktop_wasm_test.js';
|
import init, { test_socktop_connector } from './pkg/socktop_wasm_test.js';
|
||||||
|
|
||||||
@ -112,14 +110,22 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the server URL from the input field
|
||||||
|
const serverUrl = document.getElementById('serverUrl').value.trim();
|
||||||
|
if (!serverUrl) {
|
||||||
|
console.log('❌ Server URL cannot be empty');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log('');
|
console.log('');
|
||||||
console.log('='.repeat(60));
|
console.log('='.repeat(60));
|
||||||
console.log('🚀 Starting socktop_connector WASM test...');
|
console.log('🚀 Starting socktop_connector WASM test...');
|
||||||
|
console.log('🌐 Server URL: ' + serverUrl);
|
||||||
console.log('='.repeat(60));
|
console.log('='.repeat(60));
|
||||||
console.log('');
|
console.log('');
|
||||||
|
|
||||||
test_socktop_connector();
|
test_socktop_connector(serverUrl);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log('❌ Error running test:', error);
|
console.log('❌ Error running test:', error);
|
||||||
console.log('🔍 Error details:', error.stack);
|
console.log('🔍 Error details:', error.stack);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user