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) } }