#!/usr/bin/env nu
use common.nu *
def main [] {
let port = resolve-test-port 3022
let url = $"http://localhost:($port)"
let db_path = (mktemp -d -t hydrant_api_db.XXXXXX)
let binary = build-hydrant
let instance = (with-env {
HYDRANT_CRAWLER_URLS: ""
HYDRANT_RELAY_HOSTS: ""
} {
start-hydrant $binary $db_path $port
})
if not (wait-for-api $url) {
fail "hydrant did not start" $instance.pid
}
http post -f -e -H [Content-Length 0] $"($url)/db/compact" ""
| assert-status 200 "POST /db/compact" $instance.pid
let train = (
http post -f -e -H [Content-Length 0] $"($url)/db/train" ""
)
$train | assert-status 500 "POST /db/train without samples" $instance.pid
if not ($train.body | str contains "no samples found") {
fail "POST /db/train did not explain that training requires samples" $instance.pid
}
try { kill $instance.pid }
print "database maintenance endpoints passed!"
}