@@ -312,15 +312,17 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
312
312
313
313
// Matrix-driven cases
314
314
cases := []struct {
315
- name string
316
- component string
317
- stack string
318
- expected []schema.Dependent
315
+ name string
316
+ component string
317
+ stack string
318
+ dependentsStack string
319
+ expected []schema.Dependent
319
320
}{
320
321
{
321
- name : "ue1-network-vpc" ,
322
- component : "vpc" ,
323
- stack : "ue1-network" ,
322
+ name : "ue1-network-vpc" ,
323
+ component : "vpc" ,
324
+ stack : "ue1-network" ,
325
+ dependentsStack : "" ,
324
326
expected : []schema.Dependent {
325
327
{
326
328
Component : "tgw/attachment" ,
@@ -339,9 +341,10 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
339
341
},
340
342
},
341
343
{
342
- name : "uw2-network-vpc" ,
343
- component : "vpc" ,
344
- stack : "uw2-network" ,
344
+ name : "uw2-network-vpc" ,
345
+ component : "vpc" ,
346
+ stack : "uw2-network" ,
347
+ dependentsStack : "" ,
345
348
expected : []schema.Dependent {
346
349
{
347
350
Component : "tgw/attachment" ,
@@ -353,9 +356,10 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
353
356
},
354
357
},
355
358
{
356
- name : "ue1-prod-vpc" ,
357
- component : "vpc" ,
358
- stack : "ue1-prod" ,
359
+ name : "ue1-prod-vpc" ,
360
+ component : "vpc" ,
361
+ stack : "ue1-prod" ,
362
+ dependentsStack : "" ,
359
363
expected : []schema.Dependent {
360
364
{
361
365
Component : "tgw/attachment" ,
@@ -367,9 +371,10 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
367
371
},
368
372
},
369
373
{
370
- name : "uw2-prod-vpc" ,
371
- component : "vpc" ,
372
- stack : "uw2-prod" ,
374
+ name : "uw2-prod-vpc" ,
375
+ component : "vpc" ,
376
+ stack : "uw2-prod" ,
377
+ dependentsStack : "" ,
373
378
expected : []schema.Dependent {
374
379
{
375
380
Component : "tgw/attachment" ,
@@ -381,9 +386,10 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
381
386
},
382
387
},
383
388
{
384
- name : "ue1-network-tgw-hub" ,
385
- component : "tgw/hub" ,
386
- stack : "ue1-network" ,
389
+ name : "ue1-network-tgw-hub" ,
390
+ component : "tgw/hub" ,
391
+ stack : "ue1-network" ,
392
+ dependentsStack : "" ,
387
393
expected : []schema.Dependent {
388
394
{
389
395
Component : "tgw/attachment" ,
@@ -423,16 +429,18 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
423
429
},
424
430
},
425
431
{
426
- name : "uw2-network-tgw-cross-region-hub-connector" ,
427
- component : "tgw/cross-region-hub-connector" ,
428
- stack : "uw2-network" ,
429
- expected : []schema.Dependent {},
432
+ name : "uw2-network-tgw-cross-region-hub-connector" ,
433
+ component : "tgw/cross-region-hub-connector" ,
434
+ stack : "uw2-network" ,
435
+ dependentsStack : "" ,
436
+ expected : []schema.Dependent {},
430
437
},
431
438
{
432
- name : "ue1-network-tgw-attachment" ,
433
- component : "tgw/attachment" ,
434
- stack : "ue1-network" ,
435
- expected : []schema.Dependent {},
439
+ name : "ue1-network-tgw-attachment" ,
440
+ component : "tgw/attachment" ,
441
+ stack : "ue1-network" ,
442
+ dependentsStack : "" ,
443
+ expected : []schema.Dependent {},
436
444
},
437
445
{
438
446
name : "uw2-network-tgw-attachment" ,
@@ -452,12 +460,42 @@ func TestDescribeDependents_WithStacksNameTemplate(t *testing.T) {
452
460
stack : "uw2-prod" ,
453
461
expected : []schema.Dependent {},
454
462
},
463
+ {
464
+ name : "ue1-network-tgw-hub-with-same-dependents-stack" ,
465
+ component : "tgw/hub" ,
466
+ stack : "ue1-network" ,
467
+ dependentsStack : "ue1-network" ,
468
+ expected : []schema.Dependent {
469
+ {
470
+ Component : "tgw/attachment" ,
471
+ ComponentType : "terraform" ,
472
+ ComponentPath : componentPath ,
473
+ Stack : "ue1-network" ,
474
+ StackSlug : "ue1-network-tgw-attachment" ,
475
+ },
476
+ },
477
+ },
478
+ {
479
+ name : "ue1-network-tgw-hub-with-diff-dependents-stack" ,
480
+ component : "tgw/hub" ,
481
+ stack : "ue1-network" ,
482
+ dependentsStack : "uw2-prod" ,
483
+ expected : []schema.Dependent {
484
+ {
485
+ Component : "tgw/attachment" ,
486
+ ComponentType : "terraform" ,
487
+ ComponentPath : componentPath ,
488
+ Stack : "uw2-prod" ,
489
+ StackSlug : "uw2-prod-tgw-attachment" ,
490
+ },
491
+ },
492
+ },
455
493
}
456
494
457
495
for _ , tc := range cases {
458
496
tc := tc // capture
459
497
t .Run (tc .name , func (t * testing.T ) {
460
- res , err := ExecuteDescribeDependents (& atmosConfig , tc .component , tc .stack , false , true , true , nil , "" )
498
+ res , err := ExecuteDescribeDependents (& atmosConfig , tc .component , tc .stack , false , true , true , nil , tc . dependentsStack )
461
499
require .NoError (t , err )
462
500
463
501
// Order-agnostic equality on struct slices
0 commit comments