package worker import ( "testing" "time" "proto-gen/internal/config" "proto-gen/internal/database" "proto-gen/internal/k8s" ) func newTestScheduler(t *testing.T) (*Scheduler, *database.DB) { t.Helper() db, err := database.New(t.TempDir() + "/test.db") if err != nil { t.Fatalf("creating db: %v", err) } t.Cleanup(func() { db.Close() }) cfg := &config.Config{ Cluster: config.ClusterConfig{ Namespace: "test", JobTimeout: 300, MaxConcurrent: 2, }, ToolchainRegistry: "registry.example.com", } k8sClient := k8s.NewClientFromInterface(nil) scheduler := NewScheduler(db, k8sClient, cfg) scheduler.pollInterval = 100 * time.Millisecond return scheduler, db } func TestNewScheduler(t *testing.T) { scheduler, db := newTestScheduler(t) defer db.Close() if scheduler.db == nil { t.Error("db is nil") } if scheduler.k8sClient == nil { t.Error("k8sClient is nil") } } func TestProcessPendingTasks_Empty(t *testing.T) { scheduler, db := newTestScheduler(t) defer db.Close() scheduler.processPendingTasks() }