Files
Logging-System/cli/cli_test.go
T
weichenandCursor bed0dbf076
ci / vet-and-test (push) Successful in 4s
ci / docker-checkout-hostgateway (push) Successful in 2s
Add a structured logger and collector so runs can be traced across processes.
Sync and async sinks, redaction, and a queryable HTTP service keep concurrent logs tied to a trace id.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-29 13:51:16 +00:00

34 lines
750 B
Go

package cli
import (
"bytes"
"net/http"
"net/http/httptest"
"strings"
"testing"
"logging-system/server"
)
func TestQueryCommand(t *testing.T) {
srv, err := server.New("", "", 100)
if err != nil {
t.Fatal(err)
}
ts := httptest.NewServer(srv.Handler())
defer ts.Close()
res, err := http.Post(ts.URL+"/v1/logs", "application/json", strings.NewReader(`{"entries":[{"level":"info","msg":"hello-cli","service":"demo"}]}`))
if err != nil {
t.Fatal(err)
}
res.Body.Close()
var out, errBuf bytes.Buffer
code := Run([]string{"query", "--addr", ts.URL, "--service", "demo"}, &out, &errBuf)
if code != 0 {
t.Fatal(errBuf.String())
}
if !strings.Contains(out.String(), "hello-cli") {
t.Fatalf("query output: %s", out.String())
}
}