//go:build integration package main import ( "context" "encoding/json" "strings" "testing" ) func TestCallsIsServedAndSaysWhatItKeeps(t *testing.T) { handlers, behind, err := seatToolHandlers() if err != nil || len(behind) != 0 { t.Fatalf("%v %v", behind, err) } calls, ok := handlers["calls"] if !ok { t.Fatal("calls is not served") } if _, err := calls(context.Background(), json.RawMessage(`{"node":"anchor"}`)); err == nil || !strings.Contains(err.Error(), `"node"`) { t.Errorf("calls took an argument it does not declare: %v", err) } if _, err := calls(context.Background(), json.RawMessage(`{"call":"call-0-0"}`)); err == nil || !strings.Contains(err.Error(), "not across a restart") { t.Errorf("an unknown call was not said plainly: %v", err) } got, err := calls(context.Background(), json.RawMessage(`{}`)) if err != nil { t.Fatal(err) } if _, listed := got.(map[string]any)["calls"]; !listed { t.Errorf("calls answered %v", got) } }