@@ -65,6 +65,39 @@ func TestAccResourceDataView(t *testing.T) {
6565 })
6666}
6767
68+ // TestAccResourceDataViewFieldAttrsReproduceIssue reproduces the issue where
69+ // server-side generated field popularity counts cause forced replacement
70+ func TestAccResourceDataViewFieldAttrsReproduceIssue (t * testing.T ) {
71+ indexName := "reproduce-issue-" + sdkacctest .RandStringFromCharSet (4 , sdkacctest .CharSetAlphaNum )
72+
73+ resource .Test (t , resource.TestCase {
74+ PreCheck : func () { acctest .PreCheck (t ) },
75+ ProtoV6ProviderFactories : acctest .Providers ,
76+ Steps : []resource.TestStep {
77+ {
78+ SkipFunc : versionutils .CheckIfVersionIsUnsupported (minFullDataviewSupport ),
79+ Config : testAccResourceDataViewReproduceIssue (indexName ),
80+ Check : resource .ComposeTestCheckFunc (
81+ resource .TestCheckResourceAttrSet ("elasticstack_kibana_data_view.reproduce_issue" , "id" ),
82+ resource .TestCheckResourceAttr ("elasticstack_kibana_data_view.reproduce_issue" , "data_view.title" , indexName + "*" ),
83+ resource .TestCheckResourceAttr ("elasticstack_kibana_data_view.reproduce_issue" , "data_view.name" , "Reproduce Issue Data View" ),
84+ ),
85+ },
86+ // This step verifies that server-side generated field_attrs don't force replacement
87+ // In a real scenario, this would happen after Kibana UI interaction generates counts
88+ {
89+ SkipFunc : versionutils .CheckIfVersionIsUnsupported (minFullDataviewSupport ),
90+ Config : testAccResourceDataViewReproduceIssue (indexName ),
91+ Check : resource .ComposeTestCheckFunc (
92+ resource .TestCheckResourceAttrSet ("elasticstack_kibana_data_view.reproduce_issue" , "id" ),
93+ resource .TestCheckResourceAttr ("elasticstack_kibana_data_view.reproduce_issue" , "data_view.title" , indexName + "*" ),
94+ resource .TestCheckResourceAttr ("elasticstack_kibana_data_view.reproduce_issue" , "data_view.name" , "Reproduce Issue Data View" ),
95+ ),
96+ },
97+ },
98+ })
99+ }
100+
68101func testAccResourceDataViewPre8_8DV (indexName string ) string {
69102 return fmt .Sprintf (`
70103provider "elasticstack" {
@@ -151,3 +184,24 @@ resource "elasticstack_kibana_data_view" "dv" {
151184 }
152185}` , indexName , indexName , indexName )
153186}
187+
188+ func testAccResourceDataViewReproduceIssue (indexName string ) string {
189+ return fmt .Sprintf (`
190+ provider "elasticstack" {
191+ elasticsearch {}
192+ kibana {}
193+ }
194+
195+ resource "elasticstack_elasticsearch_index" "reproduce_issue_index" {
196+ name = "%s"
197+ deletion_protection = false
198+ }
199+
200+ resource "elasticstack_kibana_data_view" "reproduce_issue" {
201+ data_view = {
202+ title = "%s*"
203+ name = "Reproduce Issue Data View"
204+ id = "reproduce-issue-data-view-id"
205+ }
206+ }` , indexName , indexName )
207+ }
0 commit comments