go-proxy/sharelog_test.go

47 lines
1.1 KiB
Go
Raw Permalink Normal View History

package proxy
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestProxy_ShareLog_WritesOutcomeLines(t *testing.T) {
dir := t.TempDir()
path := filepath.Join(dir, "shares.log")
cfg := &Config{
Mode: "nicehash",
Workers: WorkersByRigID,
ShareLogFile: path,
Bind: []BindAddr{{Host: "127.0.0.1", Port: 3333}},
Pools: []PoolConfig{{URL: "pool.example:3333", Enabled: true}},
}
p, result := New(cfg)
if !result.OK {
t.Fatalf("expected valid proxy, got error: %v", result.Error)
}
miner := &Miner{
user: "WALLET",
conn: noopConn{},
state: MinerStateReady,
}
p.events.Dispatch(Event{Type: EventAccept, Miner: miner, Diff: 1234, Latency: 56})
p.events.Dispatch(Event{Type: EventReject, Miner: miner, Error: "Invalid nonce"})
p.Stop()
data, err := os.ReadFile(path)
if err != nil {
t.Fatalf("read share log: %v", err)
}
text := string(data)
if !strings.Contains(text, "ACCEPT WALLET diff=1234 latency=56ms") {
t.Fatalf("expected ACCEPT line, got %q", text)
}
if !strings.Contains(text, "REJECT WALLET reason=\"Invalid nonce\"") {
t.Fatalf("expected REJECT line, got %q", text)
}
}