package traceid

import (
	"net/http"
	"testing"
)

func TestFromResponseUsesFirstNonEmptyTraceHeader(t *testing.T) {
	resp := &http.Response{Header: make(http.Header)}
	if got := FromResponse(resp); got != "" {
		t.Fatalf("FromResponse(empty) = %q, want empty", got)
	}
	resp.Header.Set("X-Request-ID", "request-trace")
	resp.Header.Set("X-Debug-Trace-Id", "debug-trace")
	resp.Header.Set("X-Trace-ID", "trace")
	if got := FromResponse(resp); got != "trace" {
		t.Fatalf("FromResponse = %q, want X-Trace-ID", got)
	}
	resp.Header.Set("X-Trace-ID", " ")
	if got := FromResponse(resp); got != "debug-trace" {
		t.Fatalf("FromResponse after blank X-Trace-ID = %q, want X-Debug-Trace-Id", got)
	}
}
