@@ -21,7 +21,10 @@ func TestApplyMoves(t *testing.T) {
21
21
}
22
22
23
23
moduleBoo , _ := addrs .ParseModuleInstanceStr ("module.boo" )
24
+ moduleBar , _ := addrs .ParseModuleInstanceStr ("module.bar" )
24
25
moduleBarKey , _ := addrs .ParseModuleInstanceStr ("module.bar[0]" )
26
+ moduleBooHoo , _ := addrs .ParseModuleInstanceStr ("module.boo.module.hoo" )
27
+ moduleBarHoo , _ := addrs .ParseModuleInstanceStr ("module.bar.module.hoo" )
25
28
26
29
instAddrs := map [string ]addrs.AbsResourceInstance {
27
30
"foo.from" : addrs.Resource {
@@ -84,6 +87,12 @@ func TestApplyMoves(t *testing.T) {
84
87
Name : "to" ,
85
88
}.Instance (addrs .IntKey (0 )).Absolute (moduleBoo ),
86
89
90
+ "module.bar.foo.from" : addrs.Resource {
91
+ Mode : addrs .ManagedResourceMode ,
92
+ Type : "foo" ,
93
+ Name : "from" ,
94
+ }.Instance (addrs .NoKey ).Absolute (moduleBar ),
95
+
87
96
"module.bar[0].foo.from" : addrs.Resource {
88
97
Mode : addrs .ManagedResourceMode ,
89
98
Type : "foo" ,
@@ -113,6 +122,18 @@ func TestApplyMoves(t *testing.T) {
113
122
Type : "foo" ,
114
123
Name : "to" ,
115
124
}.Instance (addrs .IntKey (0 )).Absolute (moduleBarKey ),
125
+
126
+ "module.boo.module.hoo.foo.from" : addrs.Resource {
127
+ Mode : addrs .ManagedResourceMode ,
128
+ Type : "foo" ,
129
+ Name : "from" ,
130
+ }.Instance (addrs .NoKey ).Absolute (moduleBooHoo ),
131
+
132
+ "module.bar.module.hoo.foo.from" : addrs.Resource {
133
+ Mode : addrs .ManagedResourceMode ,
134
+ Type : "foo" ,
135
+ Name : "from" ,
136
+ }.Instance (addrs .NoKey ).Absolute (moduleBarHoo ),
116
137
}
117
138
118
139
emptyResults := MoveResults {
@@ -289,6 +310,47 @@ func TestApplyMoves(t *testing.T) {
289
310
},
290
311
},
291
312
313
+ "module move with child module" : {
314
+ []MoveStatement {
315
+ testMoveStatement (t , "" , "module.boo" , "module.bar" ),
316
+ },
317
+ states .BuildState (func (s * states.SyncState ) {
318
+ s .SetResourceInstanceCurrent (
319
+ instAddrs ["module.boo.foo.from" ],
320
+ & states.ResourceInstanceObjectSrc {
321
+ Status : states .ObjectReady ,
322
+ AttrsJSON : []byte (`{}` ),
323
+ },
324
+ providerAddr ,
325
+ )
326
+ s .SetResourceInstanceCurrent (
327
+ instAddrs ["module.boo.module.hoo.foo.from" ],
328
+ & states.ResourceInstanceObjectSrc {
329
+ Status : states .ObjectReady ,
330
+ AttrsJSON : []byte (`{}` ),
331
+ },
332
+ providerAddr ,
333
+ )
334
+ }),
335
+ MoveResults {
336
+ Changes : map [addrs.UniqueKey ]MoveSuccess {
337
+ instAddrs ["module.bar.foo.from" ].UniqueKey (): {
338
+ From : instAddrs ["module.boo.foo.from" ],
339
+ To : instAddrs ["module.bar.foo.from" ],
340
+ },
341
+ instAddrs ["module.bar.module.hoo.foo.from" ].UniqueKey (): {
342
+ From : instAddrs ["module.boo.module.hoo.foo.from" ],
343
+ To : instAddrs ["module.bar.module.hoo.foo.from" ],
344
+ },
345
+ },
346
+ Blocked : map [addrs.UniqueKey ]MoveBlocked {},
347
+ },
348
+ []string {
349
+ `module.bar.foo.from` ,
350
+ `module.bar.module.hoo.foo.from` ,
351
+ },
352
+ },
353
+
292
354
"move whole single module to indexed module" : {
293
355
[]MoveStatement {
294
356
testMoveStatement (t , "" , "module.boo" , "module.bar[0]" ),
0 commit comments