ERP/internal/handlers/ledger_test.go

57 lines
1.1 KiB
Go
Raw Normal View History

2026-02-06 18:49:42 +01:00
package handlers_test
import (
"net/http/httptest"
"os"
"testing"
"time"
"erp_system/internal/database"
"erp_system/internal/handlers"
"github.com/gorilla/sessions"
)
func TestJournalEntries_List(t *testing.T) {
// Setup temporary DB
dbFile := "test_ledger.db"
db, err := database.Initialize(dbFile)
if err != nil {
t.Fatalf("Failed to initialize DB: %v", err)
}
defer func() {
db.Close()
os.Remove(dbFile)
}()
// Setup Handler
store := sessions.NewCookieStore([]byte("secret"))
h := &handlers.Handler{
DB: db,
Store: store,
}
// Insert a dummy entry so the loop runs
db.Exec("INSERT INTO journal_entries (description) VALUES ('Test')")
// Create a timeout channel to detect freeze
done := make(chan bool)
go func() {
req := httptest.NewRequest("GET", "/ledger/journal", nil)
w := httptest.NewRecorder()
// Execute Handler
h.JournalEntries(w, req)
done <- true
}()
select {
case <-done:
t.Log("Handler completed successfully")
case <-time.After(2 * time.Second):
t.Fatal("Handler timed out - DEADLOCK DETECTED")
}
}