mirror of
https://github.com/MeshCore-Beacon/beacon-server.git
synced 2026-09-02 09:03:45 +00:00
61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
// Copyright 2026 Beacon Contributors
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
package handlers
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/MeshCore-Beacon/beacon-server/internal/api"
|
|
"github.com/go-chi/chi/v5"
|
|
)
|
|
|
|
func TestListTraceTags_OK(t *testing.T) {
|
|
r := chi.NewRouter()
|
|
r.Get("/traces", listTraceTags(stubReader{
|
|
listTraceTags: func(_ context.Context, _ []string, _, _ string, _, _ time.Time, _ time.Time, _ int32) ([]api.TraceTagSummary, error) {
|
|
return []api.TraceTagSummary{{TraceTag: "trace-001"}}, nil
|
|
},
|
|
}))
|
|
req := httptest.NewRequest(http.MethodGet, "/traces", nil)
|
|
w := httptest.NewRecorder()
|
|
r.ServeHTTP(w, req)
|
|
if w.Code != http.StatusOK {
|
|
t.Errorf("expected 200, got %d", w.Code)
|
|
}
|
|
}
|
|
|
|
func TestGetTrace_OK(t *testing.T) {
|
|
r := chi.NewRouter()
|
|
r.Get("/traces/{tag}", getTrace(stubReader{
|
|
getTraceByTag: func(_ context.Context, tag string) (*api.TraceDetail, error) {
|
|
return &api.TraceDetail{TraceTag: tag}, nil
|
|
},
|
|
}))
|
|
req := httptest.NewRequest(http.MethodGet, "/traces/trace-001", nil)
|
|
w := httptest.NewRecorder()
|
|
r.ServeHTTP(w, req)
|
|
if w.Code != http.StatusOK {
|
|
t.Errorf("expected 200, got %d", w.Code)
|
|
}
|
|
}
|
|
|
|
func TestGetTrace_NotFound(t *testing.T) {
|
|
r := chi.NewRouter()
|
|
r.Get("/traces/{tag}", getTrace(stubReader{
|
|
getTraceByTag: func(_ context.Context, _ string) (*api.TraceDetail, error) {
|
|
return nil, nil
|
|
},
|
|
}))
|
|
req := httptest.NewRequest(http.MethodGet, "/traces/missing", nil)
|
|
w := httptest.NewRecorder()
|
|
r.ServeHTTP(w, req)
|
|
if w.Code != http.StatusNotFound {
|
|
t.Errorf("expected 404, got %d", w.Code)
|
|
}
|
|
}
|