Introduce test.bat orchestrating Go/Vitest/Playwright phases, expand coverage across server, agent, and dashboard, and document in tests/README.md.
32 lines
781 B
Go
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")
|
|
}
|
|
}
|