package tenantoverlay

import (
	"testing"

	"github.com/nexuscrm/metadata"
	"github.com/nexuscrm/persistence"
	"github.com/nexuscrm/shared/pkg/constants"
	"github.com/pingcap-inc/nexuscrm-controlplane/packs"
)

func TestBuildTenantFieldMetadataPreservesInlineHelpText(t *testing.T) {
	sm := metadata.NewSchemaManager(persistence.NewSchemaRepository(nil, nil))
	fields := buildTenantFieldMetadata([]packs.ObjectSpec{{
		APIName:   "Lead",
		TableType: string(constants.TableTypeStandardObject),
		Category:  "tenant",
		Fields: []packs.FieldSpec{{
			APIName:  "Region__c",
			Label:    "Region",
			Type:     "string",
			HelpText: "Assigned from the address country",
		}},
	}}, sm)

	for _, field := range fields {
		if field.Field == nil || field.Field.APIName != "Region__c" {
			continue
		}
		if field.Field.HelpText == nil || *field.Field.HelpText != "Assigned from the address country" {
			t.Fatalf("tenant FieldMetadata.HelpText = %#v, want %q", field.Field.HelpText, "Assigned from the address country")
		}
		return
	}
	t.Fatal("Region__c FieldWithContext not found")
}
