@@ -49,6 +49,40 @@ describe('move', () => {
4949 . then ( done , done . fail ) ;
5050 } ) ;
5151
52+ it ( 'works on moving a directory into a subdirectory of itself' , done => {
53+ const tree = new HostTree ( ) ;
54+ tree . create ( 'a/b/file1' , 'hello world' ) ;
55+ tree . create ( 'a/b/file2' , 'hello world' ) ;
56+ tree . create ( 'a/c/file3' , 'hello world' ) ;
57+
58+ callRule ( move ( 'a/b' , 'a/b/c' ) , observableOf ( tree ) , context )
59+ . toPromise ( )
60+ . then ( result => {
61+ expect ( result . exists ( 'a/b/c/file1' ) ) . toBe ( true ) ;
62+ expect ( result . exists ( 'a/b/c/file2' ) ) . toBe ( true ) ;
63+ expect ( result . exists ( 'a/c/file3' ) ) . toBe ( true ) ;
64+ } )
65+ . then ( done , done . fail ) ;
66+ } ) ;
67+
68+ it ( 'works on moving a directory into a parent of itself' , done => {
69+ const tree = new HostTree ( ) ;
70+ tree . create ( 'a/b/file1' , 'hello world' ) ;
71+ tree . create ( 'a/b/file2' , 'hello world' ) ;
72+ tree . create ( 'a/c/file3' , 'hello world' ) ;
73+
74+ callRule ( move ( 'a/b' , 'a' ) , observableOf ( tree ) , context )
75+ . toPromise ( )
76+ . then ( result => {
77+ expect ( result . exists ( 'file1' ) ) . toBe ( false ) ;
78+ expect ( result . exists ( 'file2' ) ) . toBe ( false ) ;
79+ expect ( result . exists ( 'a/file1' ) ) . toBe ( true ) ;
80+ expect ( result . exists ( 'a/file2' ) ) . toBe ( true ) ;
81+ expect ( result . exists ( 'a/c/file3' ) ) . toBe ( true ) ;
82+ } )
83+ . then ( done , done . fail ) ;
84+ } ) ;
85+
5286 it ( 'becomes a noop with identical from and to' , done => {
5387 const tree = new HostTree ( ) ;
5488 tree . create ( 'a/b/file1' , 'hello world' ) ;
0 commit comments