Files
ragflow/internal/harness/core/event_sender_test.go
Yingfeng 956357b997 Feat: add harness-go framework —— agent core (#16045)
### What problem does this PR solve?

core module for agent layer built on top of graph engine #16039

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
2026-06-16 11:39:48 +08:00

59 lines
1.6 KiB
Go

package core
import (
"testing"
"ragflow/internal/harness/core/schema"
)
func TestEventSenderModelWrapper_Creation(t *testing.T) {
wrapper := NewEventSenderModelWrapper[*schema.Message]()
if wrapper == nil {
t.Fatal("nil wrapper")
}
}
func TestHasUserEventSenderModelWrapper_Empty(t *testing.T) {
handlers := []TypedReActMiddleware[*schema.Message]{}
if HasUserEventSenderModelWrapper(handlers) {
t.Error("should be false for empty handlers")
}
}
func TestHasUserEventSenderModelWrapper_Present(t *testing.T) {
wrapper := NewEventSenderModelWrapper[*schema.Message]()
handlers := []TypedReActMiddleware[*schema.Message]{wrapper}
if !HasUserEventSenderModelWrapper(handlers) {
t.Error("should detect user's EventSenderModelWrapper")
}
}
func TestEventSenderModelWrapper_AllNoOp(t *testing.T) {
wrapper := NewEventSenderModelWrapper[*schema.Message]()
_, _, _ = wrapper.BeforeAgent(nil, nil)
_, _ = wrapper.AfterAgent(nil, nil)
_, _, _ = wrapper.BeforeModelRewrite(nil, nil, nil)
_, _, _ = wrapper.AfterModelRewrite(nil, nil, nil)
}
func TestResumeWithData(t *testing.T) {
info := ResumeWithData(&ReActAgentResumeData{})
if info.ResumeData == nil {
t.Error("ResumeData should be set")
}
if info.WasInterrupted {
t.Error("WasInterrupted should default to false")
}
}
func TestExactRunPathMatch(t *testing.T) {
a := []RunStep{{agentName: "a"}, {agentName: "b"}}
b := []RunStep{{agentName: "a"}, {agentName: "b"}}
if !exactRunPathMatch(a, b) {
t.Error("equal paths should match")
}
if exactRunPathMatch(a, []RunStep{{agentName: "a"}}) {
t.Error("different length paths should not match")
}
}