stacks: add test case for ReportDataSourceInstanceDeferred

TF-13959
Daniel Schmidt 2 years ago
parent 7e3fb0850c
commit 57018c8d57
No known key found for this signature in database
GPG Key ID: 377C3A4D62FBBBE2

@ -109,6 +109,66 @@ func TestDeferred_absResourceInstanceDeferred(t *testing.T) {
})
}
func TestDeferred_absDataSourceInstanceDeferred(t *testing.T) {
instAAddr := addrs.AbsResourceInstance{
Module: addrs.RootModuleInstance.Child("foo", addrs.NoKey),
Resource: addrs.ResourceInstance{
Resource: addrs.Resource{
Mode: addrs.DataResourceMode,
Type: "test",
Name: "a",
},
},
}
instBAddr := addrs.AbsResourceInstance{
Module: addrs.RootModuleInstance,
Resource: addrs.ResourceInstance{
Resource: addrs.Resource{
Mode: addrs.DataResourceMode,
Type: "test",
Name: "b",
},
},
}
instCAddr := addrs.AbsResourceInstance{
Module: addrs.RootModuleInstance,
Resource: addrs.ResourceInstance{
Resource: addrs.Resource{
Mode: addrs.ManagedResourceMode,
Type: "test",
Name: "c",
},
},
}
resourceGraph := addrs.NewDirectedGraph[addrs.ConfigResource]()
resourceGraph.AddDependency(instCAddr.ConfigResource(), instBAddr.ConfigResource())
resourceGraph.AddDependency(instCAddr.ConfigResource(), instAAddr.ConfigResource())
deferred := NewDeferred(resourceGraph, true)
// Before we report anything, all three addresses should indicate that
// they don't need to have their actions deferred.
t.Run("without any deferrals yet", func(t *testing.T) {
for _, instAddr := range []addrs.AbsResourceInstance{instAAddr, instBAddr, instCAddr} {
if deferred.ShouldDeferResourceInstanceChanges(instAddr) {
t.Errorf("%s reported as needing deferred; should not be, yet", instAddr)
}
}
})
// Instance A has its Read action deferred for some reason.
deferred.ReportDataSourceInstanceDeferred(instAAddr)
t.Run("with one resource instance deferred", func(t *testing.T) {
if !deferred.ShouldDeferResourceInstanceChanges(instCAddr) {
t.Errorf("%s was not reported as needing deferred; should be deferred", instCAddr)
}
if deferred.ShouldDeferResourceInstanceChanges(instBAddr) {
t.Errorf("%s reported as needing deferred; should not be", instCAddr)
}
})
}
func TestDeferred_partialExpandedDatasource(t *testing.T) {
instAAddr := addrs.AbsResourceInstance{
Module: addrs.RootModuleInstance.Child("foo", addrs.NoKey),

Loading…
Cancel
Save