40 lines
1.7 KiB
Rust
40 lines
1.7 KiB
Rust
use std::fs;
|
|
use std::path::PathBuf;
|
|
|
|
#[test]
|
|
fn service_console_html_stays_on_service_ws_boundary() {
|
|
let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
|
let html_path = manifest_dir
|
|
.join("frontend")
|
|
.join("service-console")
|
|
.join("sg_claw_service_console.html");
|
|
let source = fs::read_to_string(&html_path).expect("service console html should exist");
|
|
|
|
assert!(source.contains("ws://127.0.0.1:42321"));
|
|
assert!(source.contains("submit_task"));
|
|
assert!(source.contains("addEventListener(\"close\""));
|
|
assert!(source.contains("setTimeout(() => connectOrDisconnectService(true)"));
|
|
assert!(source.contains("connectTimeoutTimer"));
|
|
assert!(source.contains("lastHeartbeatAt"));
|
|
assert!(source.contains("heartbeat missed, forcing reconnect"));
|
|
assert!(source.contains("service websocket connect timed out"));
|
|
assert!(!source.contains("/sgclaw/browser-helper.html"));
|
|
assert!(!source.contains("/sgclaw/callback/ready"));
|
|
assert!(!source.contains("/sgclaw/callback/events"));
|
|
assert!(!source.contains("/sgclaw/callback/commands/next"));
|
|
assert!(!source.contains("/sgclaw/callback/commands/ack"));
|
|
assert!(!source.contains("ws://127.0.0.1:12345"));
|
|
|
|
// Auto-connect and settings enhancement assertions
|
|
assert!(source.contains("DOMContentLoaded"));
|
|
assert!(source.contains("settingsBtn"));
|
|
assert!(source.contains("settingsModal"));
|
|
assert!(source.contains("update_config"));
|
|
assert!(source.contains("config_updated"));
|
|
assert!(source.contains("settingApiKey"));
|
|
assert!(source.contains("settingBaseUrl"));
|
|
assert!(source.contains("settingModel"));
|
|
assert!(source.contains("pageUrlInput"));
|
|
assert!(source.contains("pageTitleInput"));
|
|
}
|