feat: v2 版本 #206
42
backend/internal/trace/eino_test.go
Normal file
42
backend/internal/trace/eino_test.go
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
package trace_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/cloudwego/eino/compose"
|
||||||
|
"github.com/hhs/camtalk/internal/trace"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestEinoContextPropagation(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
testTraceID := "01J5TEST123456789"
|
||||||
|
ctx = trace.WithTraceID(ctx, testTraceID)
|
||||||
|
|
||||||
|
var capturedTraceID string
|
||||||
|
|
||||||
|
g := compose.NewGraph[string, string]()
|
||||||
|
g.AddLambdaNode("test_node", compose.InvokableLambda(
|
||||||
|
func(ctx context.Context, input string) (string, error) {
|
||||||
|
capturedTraceID = trace.GetTraceID(ctx)
|
||||||
|
return "ok", nil
|
||||||
|
},
|
||||||
|
))
|
||||||
|
g.AddEdge(compose.START, "test_node")
|
||||||
|
g.AddEdge("test_node", compose.END)
|
||||||
|
|
||||||
|
runnable, err := g.Compile(ctx)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("compile failed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = runnable.Invoke(ctx, "test_input")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("invoke failed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if capturedTraceID != testTraceID {
|
||||||
|
t.Errorf("trace_id lost in Eino propagation: got %q, want %q",
|
||||||
|
capturedTraceID, testTraceID)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user