Files
im_server/loadtest/im-pressure/collector_test.go
T

32 lines
904 B
Go

package main
import (
"context"
"encoding/json"
"net/http"
"net/http/httptest"
"os"
"path/filepath"
"testing"
"time"
)
func TestDetectCollectorPhase(t *testing.T) {
start := StartInfo{RunID: "run1", StartAt: time.Now().Add(-time.Second)}
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
_ = json.NewEncoder(w).Encode(map[string]any{"start": start})
}))
defer server.Close()
client := &http.Client{Timeout: time.Second}
if got := detectCollectorPhase(context.Background(), client, "before", server.URL, ""); got != "during" {
t.Fatalf("phase=%s", got)
}
output := filepath.Join(t.TempDir(), "coordinator.json")
if err := os.WriteFile(output, []byte("{}"), 0o600); err != nil {
t.Fatal(err)
}
if got := detectCollectorPhase(context.Background(), client, "during", server.URL, output); got != "after" {
t.Fatalf("phase=%s", got)
}
}