59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package node
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"google.golang.org/protobuf/proto"
|
|
|
|
"iop/apps/node/internal/runtime"
|
|
iop "iop/proto/gen/iop"
|
|
)
|
|
|
|
// mockSender is a minimal mock for protoSender.
|
|
type mockSender struct {
|
|
sent *iop.RunEvent
|
|
}
|
|
|
|
func (m *mockSender) Send(msg proto.Message) error {
|
|
if re, ok := msg.(*iop.RunEvent); ok {
|
|
m.sent = re
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func TestSessionSinkEmitIncludesNodeID(t *testing.T) {
|
|
ms := &mockSender{}
|
|
sink := &sessionSink{
|
|
sess: ms,
|
|
nodeID: "test-node-123",
|
|
sessionID: "session-abc",
|
|
background: true,
|
|
}
|
|
|
|
event := runtime.RuntimeEvent{
|
|
RunID: "run-xyz",
|
|
Type: runtime.EventTypeStart,
|
|
Timestamp: time.Now(),
|
|
}
|
|
|
|
err := sink.Emit(context.Background(), event)
|
|
if err != nil {
|
|
t.Fatalf("Emit failed: %v", err)
|
|
}
|
|
|
|
if ms.sent == nil {
|
|
t.Fatal("no event sent")
|
|
}
|
|
|
|
if ms.sent.NodeId != "test-node-123" {
|
|
t.Errorf("expected NodeId %q, got %q", "test-node-123", ms.sent.NodeId)
|
|
}
|
|
if ms.sent.SessionId != "session-abc" {
|
|
t.Errorf("expected SessionId %q, got %q", "session-abc", ms.sent.SessionId)
|
|
}
|
|
if !ms.sent.Background {
|
|
t.Error("expected Background true")
|
|
}
|
|
}
|