github.com/grafana/synthetic-monitoring-agent@v0.64.2/internal/labelmode/labelmode_test.go (about) 1 package labelmode 2 3 import ( 4 "context" 5 "errors" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/grafana/synthetic-monitoring-agent/internal/model" 11 sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring" 12 ) 13 14 type fakeTenantProvider struct { 15 tenant *sm.Tenant 16 err error 17 } 18 19 func (f fakeTenantProvider) GetTenant(context.Context, *sm.TenantInfo) (*sm.Tenant, error) { 20 return f.tenant, f.err 21 } 22 23 // TestForTenantReturnsTenantMode verifies the tenant's configured label mode is 24 // returned when the lookup succeeds. 25 func TestForTenantReturnsTenantMode(t *testing.T) { 26 lm := New(fakeTenantProvider{ 27 tenant: &sm.Tenant{LabelMode: sm.LabelMode_LABEL_MODE_DUAL_WRITE}, 28 }) 29 30 mode, err := lm.ForTenant(context.Background(), model.GlobalID(1)) 31 require.NoError(t, err) 32 require.Equal(t, sm.LabelMode_LABEL_MODE_DUAL_WRITE, mode) 33 } 34 35 // TestForTenantFallsBackToUnprefixedOnError verifies that a lookup failure 36 // returns UNPREFIXED alongside the error, so callers can degrade gracefully. 37 func TestForTenantFallsBackToUnprefixedOnError(t *testing.T) { 38 lm := New(fakeTenantProvider{err: errors.New("boom")}) 39 40 mode, err := lm.ForTenant(context.Background(), model.GlobalID(1)) 41 require.Error(t, err) 42 require.Equal(t, sm.LabelMode_LABEL_MODE_UNPREFIXED, mode) 43 }