Files
AetherForge/server/internal/api/server_policy_test.go

48 lines
1.3 KiB
Go

package api
import (
"encoding/json"
"testing"
)
func TestServerPolicyJSONRoundTrip(t *testing.T) {
in := ServerPolicy{
MaxAgents: 128,
LogAgentConnections: true,
LogShareSubmissions: false,
LogPoolTraffic: true,
StrictWalletValidation: true,
MaxBuildSizeMB: 64,
PoolReconnectSeconds: 30,
TripleOnionPolicy: TripleOnionPolicy{
PatchFirst: true,
SkipMiningOnHighRisk: true,
HighRiskThreshold: 50,
},
}
data, err := json.Marshal(in)
if err != nil {
t.Fatal(err)
}
var out ServerPolicy
if err := json.Unmarshal(data, &out); err != nil {
t.Fatal(err)
}
if out.MaxAgents != in.MaxAgents ||
out.LogAgentConnections != in.LogAgentConnections ||
out.LogShareSubmissions != in.LogShareSubmissions ||
out.LogPoolTraffic != in.LogPoolTraffic ||
out.StrictWalletValidation != in.StrictWalletValidation ||
out.MaxBuildSizeMB != in.MaxBuildSizeMB ||
out.PoolReconnectSeconds != in.PoolReconnectSeconds {
t.Fatalf("round-trip mismatch:\n got %+v\n want %+v", out, in)
}
if !out.TripleOnionPolicy.PatchFirst ||
!out.TripleOnionPolicy.SkipMiningOnHighRisk ||
out.TripleOnionPolicy.HighRiskThreshold != 50 {
t.Fatalf("triple onion policy round-trip mismatch: %+v", out.TripleOnionPolicy)
}
}