Something went wrong. Try again.
very fast at protocol indexer with flexible filtering, xrpc queries, cursor-backed event stream, and more, built on fjall
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#!/usr/bin/env nuuse common.nu *
def main [] { let port = resolve-test-port 3010 let url = $"http://localhost:($port)" let ws_url = $"ws://127.0.0.1:($port)/stream" let db_path = (mktemp -d -t hydrant_stream_ping_test.XXXXXX)
print "testing ping/pong handling on /stream..." print $"database path: ($db_path)"
let binary = build-hydrant let instance = start-hydrant $binary $db_path $port
mut passed = false
if (wait-for-api $url) { let log_file = $"($db_path)/ws.log" let ws_pid = start-ws-listener --ping $ws_url $log_file print $"websocat pid: ($ws_pid)"
sleep 6sec
let alive = (do { ^kill -0 $ws_pid } | complete | get exit_code) == 0 if $alive { print "ping/pong test PASSED: connection alive after 6s of pings" $passed = true try { kill $ws_pid } } else { print "ping/pong test FAILED: websocat exited, pong likely not received in time" try { open $log_file | print } try { open $"($log_file).err" | print } } } else { print "api failed to start." }
let hydrant_pid = $instance.pid print $"stopping hydrant - pid: ($hydrant_pid)..." try { kill $hydrant_pid }
if $passed { print "=== TEST PASSED ===" } else { print "=== TEST FAILED ===" exit 1 }}