MCPcopy Create free account
hub / github.com/ForestHubAI/edge-agents / TestLinearNode_Next

Function TestLinearNode_Next

go/engine/node_test.go:41–82  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

39 require.NoError(t, n.AddTransition(PortFalse, Transition{TargetID: "f-target"}))
40 })
41}
42
43func TestLinearNode_Next(t *testing.T) {
44 t.Run("returns StateIdle when no transition is wired", func(t *testing.T) {
45 n := NewLinearNode("n1")
46 s, err := NewMainScope(nil)
47 require.NoError(t, err)
48 next, err := n.Next(PortCtrl, s)
49 require.NoError(t, err)
50 assert.Equal(t, StateIdle, next)
51 })
52
53 t.Run("returns target id and applies transition", func(t *testing.T) {
54 n := NewLinearNode("n1")
55 require.NoError(t, n.AddTransition(PortCtrl, Transition{
56 TargetID: "next",
57 EdgeType: workflowapi.AgentChoice, // clears conversation as a side effect
58 }))
59 s, err := NewMainScope(nil)
60 require.NoError(t, err)
61 s.SetConversation(llmproxy.InputString("will be cleared"))
62
63 next, err := n.Next(PortCtrl, s)
64 require.NoError(t, err)
65 assert.Equal(t, "next", next)
66 assert.Empty(t, s.GetConversation())
67 })
68
69 t.Run("propagates Apply errors", func(t *testing.T) {
70 n := NewLinearNode("n1")
71 require.NoError(t, n.AddTransition(PortCtrl, Transition{
72 TargetID: "next",
73 EdgeType: workflowapi.AgentTask,
74 Prompt: nil, // AgentTask requires prompt → error
75 }))
76 s, err := NewMainScope(nil)
77 require.NoError(t, err)
78
79 _, err = n.Next(PortCtrl, s)
80 require.Error(t, err)
81 assert.Contains(t, err.Error(), "n1")
82 assert.Contains(t, err.Error(), PortCtrl)
83 })
84}
85

Callers

nothing calls this directly

Calls 8

NextMethod · 0.95
AddTransitionMethod · 0.95
NewLinearNodeFunction · 0.85
NewMainScopeFunction · 0.85
SetConversationMethod · 0.80
GetConversationMethod · 0.80
RunMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected