Files
AetherForge/agent/client/jobs_test.go
drjones e55f11a657 Add full test suite with unit, integration, and E2E smoke tests.
Introduce test.bat orchestrating Go/Vitest/Playwright phases, expand coverage across server, agent, and dashboard, and document in tests/README.md.
2026-05-29 10:04:52 -07:00

32 lines
781 B
Go

package client
import (
"encoding/json"
"testing"
)
func TestJobPayloadDetectsServerError(t *testing.T) {
raw := json.RawMessage(`{"error":"pool not connected"}`)
if !jobPayloadHasError(raw) {
t.Fatal("expected error detection")
}
msg, ok := jobPayloadErrorMessage(raw)
if !ok || msg != "pool not connected" {
t.Fatalf("unexpected message: %q ok=%v", msg, ok)
}
}
func TestJobPayloadNoErrorOnValidJob(t *testing.T) {
raw := json.RawMessage(`{"job_id":"abc","blob":"deadbeef","height":1}`)
if jobPayloadHasError(raw) {
t.Fatal("valid job should not report error")
}
}
func TestJobPayloadEmptyBlobNotErrorField(t *testing.T) {
raw := json.RawMessage(`{"job_id":"abc","blob":""}`)
if jobPayloadHasError(raw) {
t.Fatal("empty blob is not an error field")
}
}