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