Files
goclaw/internal/pipeline/run_state_calls_test.go
thotam 0c1ededc92 feat(webhooks): return per-call usage breakdown with provider/model/cost (#1421)
feat(webhooks): per-call usage breakdown with provider/model/cost (#1421)
2026-07-10 22:56:05 +07:00

30 lines
712 B
Go

package pipeline
import (
"sync"
"testing"
"github.com/nextlevelbuilder/goclaw/internal/providers"
)
func TestRunStateAppendCallAndBuildResult(t *testing.T) {
rs := &RunState{RunID: "r1"}
var wg sync.WaitGroup
for i := 0; i < 10; i++ { // race-safety: concurrent appends (parallel tools)
wg.Add(1)
go func() {
defer wg.Done()
rs.AppendCall(providers.CallUsage{Type: "tool_call", Provider: "p", Model: "m",
Usage: providers.Usage{PromptTokens: 1, TotalTokens: 1}})
}()
}
wg.Wait()
if len(rs.Calls) != 10 {
t.Fatalf("Calls len = %d, want 10", len(rs.Calls))
}
res := rs.BuildResult()
if len(res.Calls) != 10 {
t.Fatalf("BuildResult Calls len = %d, want 10", len(res.Calls))
}
}