Artifact 3b0f5c0a84781ac72a34e2e10836dcfaedd622ba5e254d4f8b5335903fb8c80e:
- File
leaf/telemetry/observer_test.go
— part of check-in
[38efed7a12]
at
2026-08-12 20:50:57
on branch main
— chore(deps): migrate to go-libfossil v0.9.0 (#195)
* chore(deps): migrate to go-libfossil v0.9.0 (renamed module path)
- import path danmestas/libfossil → danmestas/go-libfossil everywhere - CloneOpts.ProjectCode removed upstream; assert via CloneResult instead - Timeline now takes TimelineOpts (cursor pagination, newest-first) - testutil.HasFossil removed; check FossilBinary() != ""
* ci: retrigger checks
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> (user: [email protected], size: 995) [annotate] [blame] [check-ins using]
//go:build !wasip1 && !js package telemetry import ( "testing" libfossil "github.com/danmestas/go-libfossil" sdktrace "go.opentelemetry.io/otel/sdk/trace" "go.opentelemetry.io/otel/sdk/trace/tracetest" ) func TestOTelObserverCreatesSpans(t *testing.T) { exporter := tracetest.NewInMemoryExporter() tp := sdktrace.NewTracerProvider( sdktrace.WithSyncer(exporter), ) obs := NewOTelObserver(tp, nil) obs.Started(libfossil.SessionStart{ Push: true, Pull: true, UV: false, ProjectCode: "abc123", }) obs.RoundStarted(0) obs.RoundCompleted(0, libfossil.RoundStats{FilesSent: 5, FilesRecvd: 3}) obs.Completed(libfossil.SessionEnd{ Rounds: 1, FilesSent: 5, FilesRecvd: 3, }) spans := exporter.GetSpans() if len(spans) != 1 { t.Fatalf("got %d spans, want 1 (session)", len(spans)) } sessionSpan := spans[0] if sessionSpan.Name != "sync.session" { t.Errorf("session span name = %q, want %q", sessionSpan.Name, "sync.session") } }