refactor: harden diagnostics and consolidate runtime code
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package webui
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"bee/audit/internal/app"
|
||||
)
|
||||
|
||||
func TestSystemTimeEndpointReportsEpochLocalTimeAndTimezone(t *testing.T) {
|
||||
before := time.Now().Add(-time.Second).UnixMilli()
|
||||
rec := httptest.NewRecorder()
|
||||
NewHandler(HandlerOptions{}).ServeHTTP(rec, httptest.NewRequest(http.MethodGet, "/api/system/time", nil))
|
||||
after := time.Now().Add(time.Second).UnixMilli()
|
||||
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("status = %d, want %d", rec.Code, http.StatusOK)
|
||||
}
|
||||
var body struct {
|
||||
EpochMS int64 `json:"epoch_ms"`
|
||||
LocalTime string `json:"local_time"`
|
||||
Timezone string `json:"timezone"`
|
||||
}
|
||||
if err := json.Unmarshal(rec.Body.Bytes(), &body); err != nil {
|
||||
t.Fatalf("decode response: %v", err)
|
||||
}
|
||||
if body.EpochMS < before || body.EpochMS > after {
|
||||
t.Fatalf("epoch_ms = %d, want value in [%d, %d]", body.EpochMS, before, after)
|
||||
}
|
||||
if _, err := time.ParseInLocation("2006-01-02 15:04:05", body.LocalTime, time.Local); err != nil {
|
||||
t.Fatalf("local_time = %q: %v", body.LocalTime, err)
|
||||
}
|
||||
if strings.TrimSpace(body.Timezone) == "" {
|
||||
t.Fatal("timezone must not be empty")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNetworkDHCPRejectsMalformedJSONBeforeChangingNetwork(t *testing.T) {
|
||||
h := &handler{opts: HandlerOptions{App: &app.App{}}}
|
||||
rec := httptest.NewRecorder()
|
||||
h.handleAPINetworkDHCP(rec, httptest.NewRequest(http.MethodPost, "/api/network/dhcp", strings.NewReader("{")))
|
||||
|
||||
if rec.Code != http.StatusBadRequest {
|
||||
t.Fatalf("status = %d, want %d", rec.Code, http.StatusBadRequest)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user