mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-14 00:48:26 +08:00
### 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)
59 lines
1.6 KiB
Go
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")
|
|
}
|
|
}
|