- Add console emitter interface for event-driven console output - Implement persistent cancel reason and explicit completion tracking - Add profile proto message definitions - Update edge and node transport layers with adapter execution terminology - Add new packages/events module - Update architecture documentation and README files
45 lines
1.5 KiB
Go
45 lines
1.5 KiB
Go
package service_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
edgeservice "iop/apps/edge/internal/service"
|
|
iop "iop/proto/gen/iop"
|
|
)
|
|
|
|
func TestBuildRunRequestNormalizesSessionAndTimeout(t *testing.T) {
|
|
req, runID, err := edgeservice.BuildRunRequest(edgeservice.SubmitRunRequest{
|
|
Adapter: "cli",
|
|
Target: "codex",
|
|
Prompt: "hello",
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("BuildRunRequest: %v", err)
|
|
}
|
|
if runID == "" || req.GetRunId() != runID {
|
|
t.Fatalf("run id mismatch: runID=%q req=%q", runID, req.GetRunId())
|
|
}
|
|
if req.GetSessionId() != edgeservice.DefaultSessionID {
|
|
t.Fatalf("SessionId: got %q want %q", req.GetSessionId(), edgeservice.DefaultSessionID)
|
|
}
|
|
if req.GetTimeoutSec() != edgeservice.DefaultTimeoutSec {
|
|
t.Fatalf("TimeoutSec: got %d want %d", req.GetTimeoutSec(), edgeservice.DefaultTimeoutSec)
|
|
}
|
|
if req.GetSessionMode() != iop.RunSessionMode_RUN_SESSION_MODE_CREATE_IF_MISSING {
|
|
t.Fatalf("SessionMode: got %v", req.GetSessionMode())
|
|
}
|
|
}
|
|
|
|
func TestBuildUsageStatusRequestAndWaitTimeout(t *testing.T) {
|
|
req := edgeservice.BuildUsageStatusRequest("cli", "gemini", "", 0)
|
|
if req.GetSessionId() != edgeservice.DefaultSessionID {
|
|
t.Fatalf("SessionId: got %q want %q", req.GetSessionId(), edgeservice.DefaultSessionID)
|
|
}
|
|
if req.GetTimeoutSec() != edgeservice.DefaultTimeoutSec {
|
|
t.Fatalf("TimeoutSec: got %d want %d", req.GetTimeoutSec(), edgeservice.DefaultTimeoutSec)
|
|
}
|
|
if got, want := edgeservice.StatusWaitTimeout(req), 35*time.Second; got != want {
|
|
t.Fatalf("StatusWaitTimeout: got %v want %v", got, want)
|
|
}
|
|
}
|