MCPcopy
hub / github.com/grafana/tempo / TestExtractTenant

Function TestExtractTenant

modules/frontend/util_test.go:14–75  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

12)
13
14func TestExtractTenant(t *testing.T) {
15 logger := log.NewNopLogger()
16
17 t.Run("success case - tenant extracted from context", func(t *testing.T) {
18 // Create request with tenant in context
19 req, err := http.NewRequest("GET", "/api/traces/123", nil)
20 require.NoError(t, err)
21
22 // Inject tenant ID into context
23 ctx := user.InjectOrgID(req.Context(), "test-tenant")
24 req = req.WithContext(ctx)
25
26 // Call extractTenant
27 tenant, errResp := extractTenant(req, logger)
28
29 // Verify success
30 assert.Equal(t, "test-tenant", tenant)
31 assert.Nil(t, errResp)
32 })
33
34 t.Run("success case - single-tenant mode", func(t *testing.T) {
35 // Create request with single-tenant ID
36 req, err := http.NewRequest("GET", "/api/search", nil)
37 require.NoError(t, err)
38
39 // Inject single-tenant ID (simulating fake auth middleware)
40 ctx := user.InjectOrgID(req.Context(), "single-tenant")
41 req = req.WithContext(ctx)
42
43 // Call extractTenant
44 tenant, errResp := extractTenant(req, logger)
45
46 // Verify success
47 assert.Equal(t, "single-tenant", tenant)
48 assert.Nil(t, errResp)
49 })
50
51 t.Run("error case - no tenant in context", func(t *testing.T) {
52 // Create request without tenant in context
53 req, err := http.NewRequest("GET", "/api/traces/123", nil)
54 require.NoError(t, err)
55
56 // Call extractTenant
57 tenant, errResp := extractTenant(req, logger)
58
59 // Verify error response
60 assert.Empty(t, tenant)
61 require.NotNil(t, errResp)
62
63 // Check HTTP response details
64 assert.Equal(t, http.StatusBadRequest, errResp.StatusCode)
65 assert.Equal(t, "Bad Request", errResp.Status)
66
67 // Read response body
68 bodyBytes, err := io.ReadAll(errResp.Body)
69 require.NoError(t, err)
70 bodyStr := string(bodyBytes)
71

Callers

nothing calls this directly

Calls 5

ContextMethod · 0.95
extractTenantFunction · 0.85
ReadAllMethod · 0.65
RunMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected