Tests for Signals' judging, pacing, icons and API (#398)
signals.rs's pass, judge, pace, back_off, check_key and pick_icon ran only against a live Jev. In cargo tests ask now goes to a stand-in for it, served from a thread of its own so every test shares it, answering by key as TypeSafe would: a pass judges each new item once, keeps its verdicts and bills its owner's tokens on their own key; a refused key stops its owner's judging, not anyone else's, and is not sent again; a 429 stops the pass and the next call to Jev waits out Retry-After; a 422 stops the pass rather than repeating on every item; a key check costs tokens; an icon is one Jev was offered, on the server's key. The API: a Signal made, its words trimmed and deduplicated, bad names, words, icons and descriptions refused, renamed and re-worded, its icon cleared, its picked items listed, deleted with its verdicts; someone else's is 404 every way. In the browser, a Signal renamed and deleted from its own page. The coverage run runs the browser Signals tests too (IPX_SIGNALS_TESTS=1): Jev there is the fixture server's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,7 +91,7 @@ if [ "${1:-}" = api ]; then
|
||||
# Not `set -e`'s to stop on: a failing test still ran what it ran, and the report says so; the
|
||||
# suite's own exit code is this script's at the end.
|
||||
suite=0
|
||||
IPX_API_COVERAGE=$LLVM_TARGET IPX_COVERAGE=1 LLVM_PROFILE_FILE="$LLVM_TARGET/ipx-browser-%p-%14m.profraw" \
|
||||
IPX_API_COVERAGE=$LLVM_TARGET IPX_COVERAGE=1 IPX_SIGNALS_TESTS=1 LLVM_PROFILE_FILE="$LLVM_TARGET/ipx-browser-%p-%14m.profraw" \
|
||||
npx playwright test || suite=$?
|
||||
ls "$LLVM_TARGET"/ipx-browser-*.profraw >/dev/null 2>&1 \
|
||||
|| { echo "no profiles were written: did the servers stop on SIGTERM?" >&2; exit 1; }
|
||||
|
||||
Reference in New Issue
Block a user