Add Fleet Torrent erasure extension with shard DHT and gossip.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Content-addressed shard DHT on seeder agents with subnet_primary_seeder election, cross-subnet fleet_torrent_gossip, BGP swarm magnets, C2 torrent manifest, and k-of-n peer fetch with C2 fallback.
This commit is contained in:
59
server/internal/api/oath_ledger_test.go
Normal file
59
server/internal/api/oath_ledger_test.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"crypto-miner-server/internal/db"
|
||||
"crypto-miner-server/internal/pool"
|
||||
)
|
||||
|
||||
func TestGetOathLedgerLimit(t *testing.T) {
|
||||
database, err := db.New(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Cleanup(func() { _ = database.Close() })
|
||||
|
||||
bridge := &OathLedgerBridge{DB: database}
|
||||
if err := bridge.Record("comrade", db.OathGraft, "tgt-1", "#ff00aa", db.OathOutcomeSuccess,
|
||||
map[string]string{"source": "src-1"}, map[string]string{"graft_tier": "dns_txt"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
fh := NewFleetHandler(database, nil, nil, nil, nil, pool.Config{}, t.TempDir())
|
||||
req := httptest.NewRequest(http.MethodGet, "/api/v1/fleet/oath-ledger?limit=5", nil)
|
||||
rec := httptest.NewRecorder()
|
||||
fh.GetOathLedger(rec, req)
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("status = %d body=%s", rec.Code, rec.Body.String())
|
||||
}
|
||||
var rows []db.OathLedgerEntry
|
||||
if err := json.Unmarshal(rec.Body.Bytes(), &rows); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(rows) != 1 || rows[0].ActionType != db.OathGraft || rows[0].Actor != "comrade" {
|
||||
t.Fatalf("unexpected rows: %+v", rows)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOathLedgerBridgePersistsCourtRow(t *testing.T) {
|
||||
database, err := db.New(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Cleanup(func() { _ = database.Close() })
|
||||
hub := NewWSHub(database)
|
||||
|
||||
bridge := &OathLedgerBridge{DB: database, Hub: hub}
|
||||
if err := bridge.Record("ai_council:judge", db.OathCourtL4Decision, "a1", "", db.OathOutcomeSuccess,
|
||||
map[string]string{"verdict": "retry"}, map[string]string{"executed": "spread_now"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
rows, err := database.ListOathLedger(1)
|
||||
if err != nil || len(rows) != 1 || rows[0].ActionType != db.OathCourtL4Decision {
|
||||
t.Fatalf("db rows: %+v err=%v", rows, err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user