Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions observability/reporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,24 +138,26 @@ func TestReporter_BufferAndFlush(t *testing.T) {
})

ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
reporter.Start(ctx)

// Wait for flush
time.Sleep(200 * time.Millisecond)
cancel()
time.Sleep(100 * time.Millisecond)
deadline := time.Now().Add(2 * time.Second)
for {
mu.Lock()
execFlushed := receivedPaths["/api/v1/admin/ingest/executions"] > 0
logsFlushed := receivedPaths["/api/v1/admin/ingest/logs"] > 0
eventsFlushed := receivedPaths["/api/v1/admin/ingest/events"] > 0
mu.Unlock()

mu.Lock()
defer mu.Unlock()
if execFlushed && logsFlushed && eventsFlushed {
break
}

if receivedPaths["/api/v1/admin/ingest/executions"] == 0 {
t.Error("expected executions to be flushed")
}
if receivedPaths["/api/v1/admin/ingest/logs"] == 0 {
t.Error("expected logs to be flushed")
}
if receivedPaths["/api/v1/admin/ingest/events"] == 0 {
t.Error("expected events to be flushed")
if time.Now().After(deadline) {
t.Fatalf("timed out waiting for reports to be flushed, got: %#v", receivedPaths)
}

time.Sleep(10 * time.Millisecond)
}
}

Expand All @@ -166,9 +168,11 @@ func TestReporter_StopFlushesRemaining(t *testing.T) {
received := false

server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
mu.Lock()
received = true
mu.Unlock()
if r.URL.Path == "/api/v1/admin/ingest/executions" {
mu.Lock()
received = true
mu.Unlock()
}
w.WriteHeader(http.StatusOK)
}))
defer server.Close()
Expand Down
39 changes: 13 additions & 26 deletions plugin/manager_test.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package plugin

import (
"database/sql"
"encoding/json"
"net/http"
"net/http/httptest"
"testing"

_ "modernc.org/sqlite"
)

// --- PluginManager additional coverage tests ---
Expand Down Expand Up @@ -35,11 +32,7 @@ func TestPluginManager_NilDB(t *testing.T) {
}

func TestPluginManager_RestoreState(t *testing.T) {
db, err := sql.Open("sqlite", ":memory:")
if err != nil {
t.Fatalf("open db: %v", err)
}
defer db.Close()
db := openTestDB(t)

// First manager: register, enable, and persist
pm1 := NewPluginManager(db, nil)
Expand Down Expand Up @@ -76,18 +69,20 @@ func TestPluginManager_RestoreState_NilDB(t *testing.T) {
}

func TestPluginManager_AllPlugins(t *testing.T) {
db, err := sql.Open("sqlite", ":memory:")
if err != nil {
t.Fatalf("open db: %v", err)
}
defer db.Close()
db := openTestDB(t)

pm := NewPluginManager(db, nil)
p1 := newSimplePlugin("alpha", "1.0.0", "Alpha plugin")
p2 := newSimplePlugin("beta", "2.0.0", "Beta plugin")
_ = pm.Register(p1)
_ = pm.Register(p2)
_ = pm.Enable("alpha")
if err := pm.Register(p1); err != nil {
t.Fatalf("Register p1: %v", err)
}
if err := pm.Register(p2); err != nil {
t.Fatalf("Register p2: %v", err)
}
if err := pm.Enable("alpha"); err != nil {
t.Fatalf("Enable alpha: %v", err)
}

all := pm.AllPlugins()
if len(all) != 2 {
Expand Down Expand Up @@ -175,11 +170,7 @@ func TestPluginManager_SetContext(t *testing.T) {
}

func TestPluginManager_EnableWithVersionConstraint(t *testing.T) {
db, err := sql.Open("sqlite", ":memory:")
if err != nil {
t.Fatalf("open db: %v", err)
}
defer db.Close()
db := openTestDB(t)

pm := NewPluginManager(db, nil)
base := newSimplePlugin("base-lib", "2.0.0", "Base library")
Expand All @@ -195,11 +186,7 @@ func TestPluginManager_EnableWithVersionConstraint(t *testing.T) {
}

func TestPluginManager_EnableWithVersionConstraint_Failure(t *testing.T) {
db, err := sql.Open("sqlite", ":memory:")
if err != nil {
t.Fatalf("open db: %v", err)
}
defer db.Close()
db := openTestDB(t)

pm := NewPluginManager(db, nil)
base := newSimplePlugin("base-lib", "1.0.0", "Base library")
Expand Down