mirror of
https://github.com/hashicorp/terraform.git
synced 2026-06-09 08:58:34 -04:00
test case has unstable order
This commit is contained in:
parent
bdea1ded95
commit
b1574c6acb
1 changed files with 28 additions and 10 deletions
|
|
@ -31,8 +31,9 @@ func TestContext2Apply_actions(t *testing.T) {
|
|||
|
||||
planOpts *PlanOpts
|
||||
|
||||
expectInvokeActionCalled bool
|
||||
expectInvokeActionCalls []providers.InvokeActionRequest
|
||||
expectInvokeActionCalled bool
|
||||
expectInvokeActionCalls []providers.InvokeActionRequest
|
||||
expectInvokeActionCallsAreUnordered bool
|
||||
|
||||
expectDiagnostics func(m *configs.Config) tfdiags.Diagnostics
|
||||
}{
|
||||
|
|
@ -1277,7 +1278,8 @@ resource "test_object" "resource" {
|
|||
}
|
||||
`,
|
||||
},
|
||||
expectInvokeActionCalled: true,
|
||||
expectInvokeActionCalled: true,
|
||||
expectInvokeActionCallsAreUnordered: true, // The order depends on the order of the modules
|
||||
expectInvokeActionCalls: []providers.InvokeActionRequest{{
|
||||
ActionType: "act_unlinked",
|
||||
PlannedActionData: cty.ObjectVal(map[string]cty.Value{
|
||||
|
|
@ -1425,14 +1427,30 @@ resource "test_object" "resource" {
|
|||
if len(tc.expectInvokeActionCalls) > 0 && len(invokeActionCalls) != len(tc.expectInvokeActionCalls) {
|
||||
t.Fatalf("expected %d invoke action calls, got %d", len(tc.expectInvokeActionCalls), len(invokeActionCalls))
|
||||
}
|
||||
for i, expectedCall := range tc.expectInvokeActionCalls {
|
||||
actualCall := invokeActionCalls[i]
|
||||
|
||||
if actualCall.ActionType != expectedCall.ActionType {
|
||||
t.Fatalf("expected invoke action call %d ActionType to be %s, got %s", i, expectedCall.ActionType, actualCall.ActionType)
|
||||
}
|
||||
if !actualCall.PlannedActionData.RawEquals(expectedCall.PlannedActionData) {
|
||||
t.Fatalf("expected invoke action call %d PlannedActionData to be %s, got %s", i, expectedCall.PlannedActionData.GoString(), actualCall.PlannedActionData.GoString())
|
||||
for i, expectedCall := range tc.expectInvokeActionCalls {
|
||||
if tc.expectInvokeActionCallsAreUnordered {
|
||||
// We established the length is correct, so we just need to find one call that matches for each
|
||||
found := false
|
||||
for _, actualCall := range invokeActionCalls {
|
||||
if actualCall.ActionType == expectedCall.ActionType && actualCall.PlannedActionData.RawEquals(expectedCall.PlannedActionData) {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
t.Fatalf("expected invoke action call with ActionType %s and PlannedActionData %s was not found in actual calls", expectedCall.ActionType, expectedCall.PlannedActionData.GoString())
|
||||
}
|
||||
} else {
|
||||
// Expect correct order
|
||||
actualCall := invokeActionCalls[i]
|
||||
|
||||
if actualCall.ActionType != expectedCall.ActionType {
|
||||
t.Fatalf("expected invoke action call %d ActionType to be %s, got %s", i, expectedCall.ActionType, actualCall.ActionType)
|
||||
}
|
||||
if !actualCall.PlannedActionData.RawEquals(expectedCall.PlannedActionData) {
|
||||
t.Fatalf("expected invoke action call %d PlannedActionData to be %s, got %s", i, expectedCall.PlannedActionData.GoString(), actualCall.PlannedActionData.GoString())
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue