package variable import ( "context" "reflect" "testing" "github.com/stretchr/testify/assert" ) func TestLookup_Coverage(t *testing.T) { var lookup Lookup val := reflect.ValueOf(lookup) typ := val.Type() for i := 0; i < val.NumField(); i++ { field := val.Field(i) if field.Kind() != reflect.String { t.Fatalf("Field %s is not a string", typ.Field(i).Name) } fieldType := typ.Field(i) t.Run(fieldType.Name, func(t *testing.T) { // Use a fresh instance of the struct in each test var lookup Lookup // Set the field to a non-empty string reflect.ValueOf(&lookup).Elem().Field(i).SetString("value") // Test the [String] function assert.NotEmpty(t, lookup.String()) }) } } func TestLookup_Empty(t *testing.T) { var lookup Lookup // Resolve returns an error when no fields are provided _, err := lookup.Resolve(context.Background(), nil) assert.ErrorContains(t, err, "no valid lookup fields provided") // No string representation for an invalid lookup assert.Empty(t, lookup.String()) } func TestLookup_Multiple(t *testing.T) { lookup := Lookup{ Alert: "alert", Query: "query", } // Resolve returns an error when multiple fields are provided _, err := lookup.Resolve(context.Background(), nil) assert.ErrorContains(t, err, "exactly one lookup field must be provided") // No string representation for an invalid lookup assert.Empty(t, lookup.String()) }