feat: add in-process adapter research contract

This commit is contained in:
zhaoyilun
2026-07-12 11:15:07 +08:00
parent a4242c12be
commit a9e692a574
8 changed files with 1054 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ package tools
import (
"context"
"strings"
"testing"
)
@@ -103,6 +104,31 @@ func TestSendMessageConnectorFromEnvBuildsUiaRPAConnector(t *testing.T) {
}
}
func TestSendMessageConnectorFromEnvBuildsInProcessContractConnector(t *testing.T) {
t.Setenv(EnvSendConnectorMode, "in_process_contract")
connector := NewSendMessageConnectorFromEnv()
if connector == nil {
t.Fatalf("NewSendMessageConnectorFromEnv returned nil for in_process_contract config")
}
result, err := connector.ExecuteSendMessage(context.Background(), SendMessageConnectorRequest{
TargetType: "direct",
TargetID: "u1",
TargetRef: "contact:u1",
ContentText: "hello",
ContentSHA256: strings.Repeat("a", 64),
ContentLength: 5,
IdempotencyKeySHA256: strings.Repeat("b", 64),
ExecutionMode: sendMessageProductionMode,
})
if err != nil {
t.Fatalf("in_process_contract should return structured blocked result, got err=%v", err)
}
if result.Accepted || result.ProductionEnabled || result.ErrorCode != "broute_in_process_contract_only" {
t.Fatalf("unexpected in-process contract result: %+v", result)
}
}
type fakeUiaHelperCaller struct {
response uiaHelperResponse
err error