@@ -163,6 +163,8 @@ func TestAccDashboard_computed_config(t *testing.T) {
163
163
func TestAccDashboard_folder (t * testing.T ) {
164
164
testutils .CheckOSSTestsEnabled (t )
165
165
166
+ uid := acctest .RandString (10 )
167
+
166
168
var dashboard gapi.Dashboard
167
169
var folder goapi.Folder
168
170
@@ -171,13 +173,25 @@ func TestAccDashboard_folder(t *testing.T) {
171
173
CheckDestroy : testAccDashboardFolderCheckDestroy (& dashboard , & folder ),
172
174
Steps : []resource.TestStep {
173
175
{
174
- Config : testutils .TestAccExample (t , "resources/grafana_dashboard/_acc_folder.tf" ),
176
+ Config : testAccDashboardFolder (uid , "grafana_folder.test_folder1.id" ),
177
+ Check : resource .ComposeTestCheckFunc (
178
+ testAccDashboardCheckExists ("grafana_dashboard.test_folder" , & dashboard ),
179
+ testAccFolderCheckExists ("grafana_folder.test_folder1" , & folder ),
180
+ testAccDashboardCheckExistsInFolder (& dashboard , & folder ),
181
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "id" , "1:" + uid ), // <org id>:<uid>
182
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "uid" , uid ),
183
+ resource .TestMatchResourceAttr ("grafana_dashboard.test_folder" , "folder" , common .IDRegexp ),
184
+ ),
185
+ },
186
+ // Update folder
187
+ {
188
+ Config : testAccDashboardFolder (uid , "grafana_folder.test_folder2.id" ),
175
189
Check : resource .ComposeTestCheckFunc (
176
190
testAccDashboardCheckExists ("grafana_dashboard.test_folder" , & dashboard ),
177
- testAccFolderCheckExists ("grafana_folder.test_folder " , & folder ),
191
+ testAccFolderCheckExists ("grafana_folder.test_folder2 " , & folder ),
178
192
testAccDashboardCheckExistsInFolder (& dashboard , & folder ),
179
- resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "id" , "1:folder-dashboard-test-ref-with-id" ), // <org id>:<uid>
180
- resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "uid" , "folder-dashboard-test-ref-with-id" ),
193
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "id" , "1:" + uid ), // <org id>:<uid>
194
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "uid" , uid ),
181
195
resource .TestMatchResourceAttr ("grafana_dashboard.test_folder" , "folder" , common .IDRegexp ),
182
196
),
183
197
},
@@ -187,7 +201,8 @@ func TestAccDashboard_folder(t *testing.T) {
187
201
188
202
func TestAccDashboard_folder_uid (t * testing.T ) {
189
203
testutils .CheckOSSTestsEnabled (t )
190
- testutils .CheckOSSTestsSemver (t , ">=8.0.0" ) // UID in folders were added in v8
204
+
205
+ uid := acctest .RandString (10 )
191
206
192
207
var dashboard gapi.Dashboard
193
208
var folder goapi.Folder
@@ -197,14 +212,26 @@ func TestAccDashboard_folder_uid(t *testing.T) {
197
212
CheckDestroy : testAccDashboardFolderCheckDestroy (& dashboard , & folder ),
198
213
Steps : []resource.TestStep {
199
214
{
200
- Config : testutils .TestAccExample (t , "resources/grafana_dashboard/_acc_folder_uid_ref.tf" ),
215
+ Config : testAccDashboardFolder (uid , "grafana_folder.test_folder1.uid" ),
216
+ Check : resource .ComposeTestCheckFunc (
217
+ testAccFolderCheckExists ("grafana_folder.test_folder1" , & folder ),
218
+ testAccDashboardCheckExists ("grafana_dashboard.test_folder" , & dashboard ),
219
+ testAccDashboardCheckExistsInFolder (& dashboard , & folder ),
220
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "id" , "1:" + uid ), // <org id>:<uid>
221
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "uid" , uid ),
222
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "folder" , uid + "-1" ),
223
+ ),
224
+ },
225
+ // Update folder
226
+ {
227
+ Config : testAccDashboardFolder (uid , "grafana_folder.test_folder2.uid" ),
201
228
Check : resource .ComposeTestCheckFunc (
202
- testAccFolderCheckExists ("grafana_folder.test_folder " , & folder ),
229
+ testAccFolderCheckExists ("grafana_folder.test_folder2 " , & folder ),
203
230
testAccDashboardCheckExists ("grafana_dashboard.test_folder" , & dashboard ),
204
231
testAccDashboardCheckExistsInFolder (& dashboard , & folder ),
205
- resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "id" , "1:folder-dashboard-test-ref-with-uid" ), // <org id>:<uid>
206
- resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "uid" , "folder-dashboard-test-ref-with- uid" ),
207
- resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "folder" , "folder-dashboard-uid-test " ),
232
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "id" , "1:" + uid ), // <org id>:<uid>
233
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "uid" , uid ),
234
+ resource .TestCheckResourceAttr ("grafana_dashboard.test_folder" , "folder" , uid + "-2 " ),
208
235
),
209
236
},
210
237
{
@@ -398,6 +425,27 @@ func Test_NormalizeDashboardConfigJSON(t *testing.T) {
398
425
}
399
426
}
400
427
428
+ func testAccDashboardFolder (uid string , folderRef string ) string {
429
+ return fmt .Sprintf (`
430
+ resource "grafana_folder" "test_folder1" {
431
+ title = "%[1]s-1"
432
+ uid = "%[1]s-1"
433
+ }
434
+
435
+ resource "grafana_folder" "test_folder2" {
436
+ title = "%[1]s-2"
437
+ uid = "%[1]s-2"
438
+ }
439
+
440
+ resource "grafana_dashboard" "test_folder" {
441
+ folder = %[2]s
442
+ config_json = jsonencode({
443
+ "title" : "%[1]s",
444
+ "uid" : "%[1]s"
445
+ })
446
+ }` , uid , folderRef )
447
+ }
448
+
401
449
func testAccDashboardInOrganization (orgName string ) string {
402
450
return fmt .Sprintf (`
403
451
resource "grafana_organization" "test" {
0 commit comments