go-proxy/miner_wire_test.go
Virgil 5ba21cb9bf fix(proxy): align miner success wire format
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:17:31 +00:00

43 lines
967 B
Go

package proxy
import (
"bufio"
"encoding/json"
"net"
"testing"
)
func TestMiner_Success_WritesNullError_Good(t *testing.T) {
minerConn, clientConn := net.Pipe()
defer minerConn.Close()
defer clientConn.Close()
miner := NewMiner(minerConn, 3333, nil)
done := make(chan struct{})
go func() {
miner.Success(7, "OK")
close(done)
}()
line, err := bufio.NewReader(clientConn).ReadBytes('\n')
if err != nil {
t.Fatalf("read success response: %v", err)
}
<-done
var payload struct {
Error json.RawMessage `json:"error"`
Result struct {
Status string `json:"status"`
} `json:"result"`
}
if err := json.Unmarshal(line, &payload); err != nil {
t.Fatalf("unmarshal success response: %v", err)
}
if string(payload.Error) != "null" {
t.Fatalf("expected success response error to be null, got %s", string(payload.Error))
}
if payload.Result.Status != "OK" {
t.Fatalf("expected success status OK, got %q", payload.Result.Status)
}
}