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  }