Skip to content

Commit 26bcac7

Browse files
Copilotdimuon
andcommitted
Add acceptance test to reproduce field_attrs count replacement issue
Co-authored-by: dimuon <[email protected]>
1 parent 017ace6 commit 26bcac7

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

internal/kibana/data_view/acc_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
68101
func testAccResourceDataViewPre8_8DV(indexName string) string {
69102
return fmt.Sprintf(`
70103
provider "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

Comments
 (0)