@@ -91,7 +91,7 @@ const preTestTemplateUpdate = `
9191func TestUcAccCreateShare (t * testing.T ) {
9292 acceptance .UnityWorkspaceLevel (t , acceptance.Step {
9393 Template : preTestTemplate + `
94- resource "databricks_share_pluginframework " "myshare" {
94+ resource "databricks_share " "myshare" {
9595 name = "{var.STICKY_RANDOM}-terraform-delta-share"
9696 owner = "account users"
9797 object {
@@ -119,7 +119,7 @@ func TestUcAccCreateShare(t *testing.T) {
119119 }
120120
121121 resource "databricks_grants" "some" {
122- share = databricks_share_pluginframework .myshare.name
122+ share = databricks_share .myshare.name
123123 grant {
124124 principal = databricks_recipient.db2open.name
125125 privileges = ["SELECT"]
@@ -131,7 +131,7 @@ func TestUcAccCreateShare(t *testing.T) {
131131
132132func shareTemplateWithOwner (comment string , owner string ) string {
133133 return fmt .Sprintf (`
134- resource "databricks_share_pluginframework " "myshare" {
134+ resource "databricks_share " "myshare" {
135135 name = "{var.STICKY_RANDOM}-terraform-delta-share"
136136 owner = "%s"
137137 object {
@@ -159,7 +159,7 @@ func TestUcAccUpdateShare(t *testing.T) {
159159func TestUcAccUpdateShareAddObject (t * testing.T ) {
160160 acceptance .UnityWorkspaceLevel (t , acceptance.Step {
161161 Template : preTestTemplate + preTestTemplateUpdate +
162- `resource "databricks_share_pluginframework " "myshare" {
162+ `resource "databricks_share " "myshare" {
163163 name = "{var.STICKY_RANDOM}-terraform-delta-share"
164164 owner = "account users"
165165 object {
@@ -178,7 +178,7 @@ func TestUcAccUpdateShareAddObject(t *testing.T) {
178178 }` ,
179179 }, acceptance.Step {
180180 Template : preTestTemplate + preTestTemplateUpdate +
181- `resource "databricks_share_pluginframework " "myshare" {
181+ `resource "databricks_share " "myshare" {
182182 name = "{var.STICKY_RANDOM}-terraform-delta-share"
183183 owner = "account users"
184184 object {
@@ -206,7 +206,7 @@ func TestUcAccUpdateShareAddObject(t *testing.T) {
206206func TestUcAccUpdateShareReorderObject (t * testing.T ) {
207207 acceptance .UnityWorkspaceLevel (t , acceptance.Step {
208208 Template : preTestTemplate + preTestTemplateUpdate +
209- `resource "databricks_share_pluginframework " "myshare" {
209+ `resource "databricks_share " "myshare" {
210210 name = "{var.STICKY_RANDOM}-terraform-delta-share"
211211 owner = "account users"
212212 object {
@@ -220,7 +220,7 @@ func TestUcAccUpdateShareReorderObject(t *testing.T) {
220220 }` ,
221221 }, acceptance.Step {
222222 Template : preTestTemplate + preTestTemplateUpdate +
223- `resource "databricks_share_pluginframework " "myshare" {
223+ `resource "databricks_share " "myshare" {
224224 name = "{var.STICKY_RANDOM}-terraform-delta-share"
225225 owner = "account users"
226226 object {
@@ -234,3 +234,118 @@ func TestUcAccUpdateShareReorderObject(t *testing.T) {
234234 }` ,
235235 })
236236}
237+
238+ // TestUcAccUpdateShareNoChanges tests that updating a share with no actual changes doesn't cause issues
239+ func TestUcAccUpdateShareNoChanges (t * testing.T ) {
240+ shareConfig := preTestTemplate + preTestTemplateUpdate +
241+ `resource "databricks_share" "myshare" {
242+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
243+ owner = "account users"
244+ object {
245+ name = databricks_table.mytable.id
246+ comment = "stable comment"
247+ data_object_type = "TABLE"
248+ }
249+ }`
250+
251+ acceptance .UnityWorkspaceLevel (t , acceptance.Step {
252+ Template : shareConfig ,
253+ }, acceptance.Step {
254+ Template : shareConfig , // Same config - should not trigger any updates
255+ })
256+ }
257+
258+ // TestUcAccUpdateShareComplexObjectChanges tests complex scenarios with multiple object updates
259+ func TestUcAccUpdateShareComplexObjectChanges (t * testing.T ) {
260+ acceptance .UnityWorkspaceLevel (t , acceptance.Step {
261+ Template : preTestTemplate + preTestTemplateUpdate +
262+ `resource "databricks_share" "myshare" {
263+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
264+ owner = "account users"
265+ object {
266+ name = databricks_table.mytable.id
267+ comment = "original comment"
268+ data_object_type = "TABLE"
269+ }
270+ object {
271+ name = databricks_table.mytable_2.id
272+ comment = "second table"
273+ data_object_type = "TABLE"
274+ }
275+ }` ,
276+ }, acceptance.Step {
277+ // Remove one object, add another, and update comment on existing
278+ Template : preTestTemplate + preTestTemplateUpdate +
279+ `resource "databricks_share" "myshare" {
280+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
281+ owner = "account users"
282+ object {
283+ name = databricks_table.mytable.id
284+ comment = "updated comment"
285+ data_object_type = "TABLE"
286+ }
287+ object {
288+ name = databricks_table.mytable_3.id
289+ comment = "third table"
290+ data_object_type = "TABLE"
291+ }
292+ }` ,
293+ })
294+ }
295+
296+ // TestUcAccUpdateShareRemoveAllObjects tests removing all objects from a share
297+ func TestUcAccUpdateShareRemoveAllObjects (t * testing.T ) {
298+ acceptance .UnityWorkspaceLevel (t , acceptance.Step {
299+ Template : preTestTemplate + preTestTemplateUpdate +
300+ `resource "databricks_share" "myshare" {
301+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
302+ owner = "account users"
303+ object {
304+ name = databricks_table.mytable.id
305+ comment = "to be removed"
306+ data_object_type = "TABLE"
307+ }
308+ object {
309+ name = databricks_table.mytable_2.id
310+ comment = "also to be removed"
311+ data_object_type = "TABLE"
312+ }
313+ }` ,
314+ }, acceptance.Step {
315+ Template : preTestTemplate + preTestTemplateUpdate +
316+ `resource "databricks_share" "myshare" {
317+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
318+ owner = "account users"
319+ }` ,
320+ })
321+ }
322+
323+ // TestUcAccUpdateShareCDFEnabled tests the CDF enabled suppression logic
324+ func TestUcAccUpdateShareCDFEnabled (t * testing.T ) {
325+ acceptance .UnityWorkspaceLevel (t , acceptance.Step {
326+ Template : preTestTemplate + preTestTemplateUpdate +
327+ `resource "databricks_share" "myshare" {
328+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
329+ owner = "account users"
330+ object {
331+ name = databricks_table.mytable.id
332+ comment = "with history sharing"
333+ data_object_type = "TABLE"
334+ history_data_sharing_status = "ENABLED"
335+ }
336+ }` ,
337+ }, acceptance.Step {
338+ // Change comment but keep history_data_sharing_status
339+ Template : preTestTemplate + preTestTemplateUpdate +
340+ `resource "databricks_share" "myshare" {
341+ name = "{var.STICKY_RANDOM}-terraform-delta-share"
342+ owner = "account users"
343+ object {
344+ name = databricks_table.mytable.id
345+ comment = "updated comment with history sharing"
346+ data_object_type = "TABLE"
347+ history_data_sharing_status = "ENABLED"
348+ }
349+ }` ,
350+ })
351+ }
0 commit comments