@@ -799,6 +799,97 @@ func TestGenerateCleanup(t *testing.T) {
799799 },
800800 },
801801 },
802+ {
803+ name : "workdir is respected in cleanup" ,
804+ layout : []string {
805+ "s:stacks/stack-1" ,
806+ "s:stacks/stack-2" ,
807+ "s:stacks/stack-1/stack-1-a" ,
808+ "s:stacks/stack-1/stack-1-b" ,
809+ "s:stacks/stack-3" , // only files here will be cleaned up.
810+ genfile ("dir/orphan.hcl" ),
811+ genfile ("stacks/stack-1/a.hcl" ),
812+ genfile ("stacks/stack-1/subdir/b.hcl" ),
813+ genfile ("stacks/stack-1/subdir/dir/c.hcl" ),
814+ genfile ("stacks/stack-1/stack-1-a/e.hcl" ),
815+ genfile ("stacks/stack-1/stack-1-a/subdir/f.hcl" ),
816+ genfile ("stacks/stack-1/stack-1-a/subdir/dir/g.hcl" ),
817+ genfile ("stacks/stack-1/stack-1-b/h.hcl" ),
818+ genfile ("stacks/stack-2/d.hcl" ),
819+ genfile ("stacks/stack-3/x.hcl" ),
820+ genfile ("stacks/stack-3/subdir/y.hcl" ),
821+ genfile ("stacks/stack-3/subdir/dir/z.hcl" ),
822+ },
823+ fromdir : "/stacks/stack-3" ,
824+ wantReport : generate.Report {
825+ Successes : []generate.Result {
826+ {
827+ Dir : project .NewPath ("/stacks/stack-3" ),
828+ Deleted : []string {
829+ "subdir/dir/z.hcl" ,
830+ "subdir/y.hcl" ,
831+ "x.hcl" ,
832+ },
833+ },
834+ },
835+ },
836+ want : []generatedFile {
837+ {
838+ dir : "/stacks/stack-1" ,
839+ files : map [string ]fmt.Stringer {
840+ "a.hcl" : Doc (),
841+ },
842+ },
843+ {
844+ dir : "/stacks/stack-1/stack-1-a" ,
845+ files : map [string ]fmt.Stringer {
846+ "e.hcl" : Doc (),
847+ },
848+ },
849+ {
850+ dir : "/stacks/stack-1/stack-1-a/subdir/dir" ,
851+ files : map [string ]fmt.Stringer {
852+ "g.hcl" : Doc (),
853+ },
854+ },
855+ {
856+ dir : "/stacks/stack-1/stack-1-a/subdir" ,
857+ files : map [string ]fmt.Stringer {
858+ "f.hcl" : Doc (),
859+ },
860+ },
861+ {
862+ dir : "/stacks/stack-1/stack-1-b" ,
863+ files : map [string ]fmt.Stringer {
864+ "h.hcl" : Doc (),
865+ },
866+ },
867+ {
868+ dir : "/stacks/stack-1/subdir" ,
869+ files : map [string ]fmt.Stringer {
870+ "b.hcl" : Doc (),
871+ },
872+ },
873+ {
874+ dir : "/stacks/stack-1/subdir/dir" ,
875+ files : map [string ]fmt.Stringer {
876+ "c.hcl" : Doc (),
877+ },
878+ },
879+ {
880+ dir : "/stacks/stack-2" ,
881+ files : map [string ]fmt.Stringer {
882+ "d.hcl" : Doc (),
883+ },
884+ },
885+ {
886+ dir : "/dir" ,
887+ files : map [string ]fmt.Stringer {
888+ "orphan.hcl" : Doc (),
889+ },
890+ },
891+ },
892+ },
802893 {
803894 name : "cleanup ignores dotdirs outside stacks" ,
804895 layout : []string {
0 commit comments