Skip to content

Commit

Permalink
Add SDKv2 Detailed Diff tests for Computed properties in sets
Browse files Browse the repository at this point in the history
  • Loading branch information
VenelinMartinov committed Dec 13, 2024
1 parent d7e5748 commit d8b1526
Show file tree
Hide file tree
Showing 507 changed files with 24,495 additions and 19 deletions.
366 changes: 347 additions & 19 deletions pkg/tests/detailed_diff_set_test.go

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
tests.testOutput{
initialValue: &[]string{},
changeValue: &[]string{"value"},
tfOut: `
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+/- create replacement and then destroy

Terraform will perform the following actions:

# crossprovider_test_res.example must be replaced
+/- resource "crossprovider_test_res" "example" {
~ id = "id" -> (known after apply)

+ test { # forces replacement
+ computed = (known after apply)
+ nested = "value"
}
}

Plan: 1 to add, 0 to change, 1 to destroy.

`,
pulumiOut: `Previewing update (test):
pulumi:pulumi:Stack: (same)
[urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test]
+-crossprovider:index/testRes:TestRes: (replace)
[id=id]
[urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example]
+ tests: [
+ [0]: {
+ nested : "value"
}
]
Resources:
+-1 to replace
1 unchanged
`,
detailedDiff: map[string]interface{}{"tests": map[string]interface{}{"kind": "ADD_REPLACE"}},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
tests.testOutput{
initialValue: &[]string{
"val1",
"val2",
},
changeValue: &[]string{
"val1",
"val2",
"val3",
},
tfOut: `
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+/- create replacement and then destroy

Terraform will perform the following actions:

# crossprovider_test_res.example must be replaced
+/- resource "crossprovider_test_res" "example" {
~ id = "id" -> (known after apply)

- test { # forces replacement
- nested = "val1" -> null
# (1 unchanged attribute hidden)
}
- test { # forces replacement
- nested = "val2" -> null
# (1 unchanged attribute hidden)
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val1"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val2"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val3"
}
}

Plan: 1 to add, 0 to change, 1 to destroy.

`,
pulumiOut: `Previewing update (test):
pulumi:pulumi:Stack: (same)
[urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test]
+-crossprovider:index/testRes:TestRes: (replace)
[id=id]
[urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example]
~ tests: [
~ [0]: {
}
~ [1]: {
}
+ [2]: {
+ nested : "val3"
}
]
Resources:
+-1 to replace
1 unchanged
`,
detailedDiff: map[string]interface{}{
"tests[0].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[1].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"},
},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
tests.testOutput{
initialValue: &[]string{
"val2",
"val3",
},
changeValue: &[]string{
"val2",
"val3",
"val1",
},
tfOut: `
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+/- create replacement and then destroy

Terraform will perform the following actions:

# crossprovider_test_res.example must be replaced
+/- resource "crossprovider_test_res" "example" {
~ id = "id" -> (known after apply)

- test { # forces replacement
- nested = "val2" -> null
# (1 unchanged attribute hidden)
}
- test { # forces replacement
- nested = "val3" -> null
# (1 unchanged attribute hidden)
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val1"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val2"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val3"
}
}

Plan: 1 to add, 0 to change, 1 to destroy.

`,
pulumiOut: `Previewing update (test):
pulumi:pulumi:Stack: (same)
[urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test]
+-crossprovider:index/testRes:TestRes: (replace)
[id=id]
[urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example]
~ tests: [
~ [0]: {
~ nested : "val2" => "val2"
}
~ [1]: {
~ nested : "val3" => "val3"
}
+ [2]: {
+ nested : "val1"
}
]
Resources:
+-1 to replace
1 unchanged
`,
detailedDiff: map[string]interface{}{
"tests[0].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[0].nested": map[string]interface{}{"kind": "UPDATE_REPLACE"},
"tests[1].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[1].nested": map[string]interface{}{"kind": "UPDATE_REPLACE"},
"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"},
},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
tests.testOutput{
initialValue: &[]string{
"val2",
"val3",
},
changeValue: &[]string{
"val1",
"val2",
"val3",
},
tfOut: `
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+/- create replacement and then destroy

Terraform will perform the following actions:

# crossprovider_test_res.example must be replaced
+/- resource "crossprovider_test_res" "example" {
~ id = "id" -> (known after apply)

- test { # forces replacement
- nested = "val2" -> null
# (1 unchanged attribute hidden)
}
- test { # forces replacement
- nested = "val3" -> null
# (1 unchanged attribute hidden)
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val1"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val2"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val3"
}
}

Plan: 1 to add, 0 to change, 1 to destroy.

`,
pulumiOut: `Previewing update (test):
pulumi:pulumi:Stack: (same)
[urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test]
+-crossprovider:index/testRes:TestRes: (replace)
[id=id]
[urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example]
~ tests: [
~ [0]: {
~ nested : "val2" => "val1"
}
~ [1]: {
~ nested : "val3" => "val2"
}
+ [2]: {
+ nested : "val3"
}
]
Resources:
+-1 to replace
1 unchanged
`,
detailedDiff: map[string]interface{}{
"tests[0].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[0].nested": map[string]interface{}{"kind": "UPDATE_REPLACE"},
"tests[1].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[1].nested": map[string]interface{}{"kind": "UPDATE_REPLACE"},
"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"},
},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
tests.testOutput{
initialValue: &[]string{
"val3",
"val1",
},
changeValue: &[]string{
"val2",
"val3",
"val1",
},
tfOut: `
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+/- create replacement and then destroy

Terraform will perform the following actions:

# crossprovider_test_res.example must be replaced
+/- resource "crossprovider_test_res" "example" {
~ id = "id" -> (known after apply)

- test { # forces replacement
- nested = "val1" -> null
# (1 unchanged attribute hidden)
}
- test { # forces replacement
- nested = "val3" -> null
# (1 unchanged attribute hidden)
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val1"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val2"
}
+ test { # forces replacement
+ computed = (known after apply)
+ nested = "val3"
}
}

Plan: 1 to add, 0 to change, 1 to destroy.

`,
pulumiOut: `Previewing update (test):
pulumi:pulumi:Stack: (same)
[urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test]
+-crossprovider:index/testRes:TestRes: (replace)
[id=id]
[urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example]
~ tests: [
~ [0]: {
}
~ [1]: {
~ nested : "val3" => "val3"
}
+ [2]: {
+ nested : "val1"
}
]
Resources:
+-1 to replace
1 unchanged
`,
detailedDiff: map[string]interface{}{
"tests[0].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[1].computed": map[string]interface{}{"kind": "UPDATE"},
"tests[1].nested": map[string]interface{}{"kind": "UPDATE_REPLACE"},
"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"},
},
}
Loading

0 comments on commit d8b1526

Please sign in to comment.