@@ -54,6 +54,93 @@ describe("Index", function() {
5454 } ) ;
5555
5656 assert . equal ( newFiles . length , 2 ) ;
57+ } )
58+ . then ( function ( ) {
59+ return Promise . all ( fileNames . map ( function ( fileName ) {
60+ fse . remove ( path . join ( repo . workdir ( ) , fileName ) ) ;
61+ } ) ) ;
62+ } )
63+ . then ( function ( ) {
64+ index . clear ( ) ;
65+ } ) ;
66+ } ) ;
67+
68+ it ( "can remove entries from the index" , function ( ) {
69+ var repo = this . repo ;
70+ var index = this . index ;
71+ var fileContent = {
72+ newFile1 : "this has some content" ,
73+ newFile2 : "and this will have more content" ,
74+ differentFileName : "this has a different name and shouldn't be deleted"
75+ } ;
76+ var fileNames = Object . keys ( fileContent ) ;
77+
78+ return Promise . all ( fileNames . map ( function ( fileName ) {
79+ fse . writeFile ( path . join ( repo . workdir ( ) , fileName ) , fileContent [ fileName ] ) ;
80+ } ) )
81+ . then ( function ( ) {
82+ return index . addAll ( ) ;
83+ } )
84+ . then ( function ( ) {
85+ var newFiles = index . entries ( ) . filter ( function ( entry ) {
86+ return ~ fileNames . indexOf ( entry . path ( ) ) ;
87+ } ) ;
88+
89+ assert . equal ( newFiles . length , 3 ) ;
90+
91+ return index . removeAll ( "newFile*" ) ;
92+ } )
93+ . then ( function ( ) {
94+ var newFiles = index . entries ( ) . filter ( function ( entry ) {
95+ return ~ fileNames . indexOf ( entry . path ( ) ) ;
96+ } ) ;
97+
98+ assert . equal ( newFiles . length , 1 ) ;
99+ } )
100+ . then ( function ( ) {
101+ return Promise . all ( fileNames . map ( function ( fileName ) {
102+ fse . remove ( path . join ( repo . workdir ( ) , fileName ) ) ;
103+ } ) ) ;
104+ } )
105+ . then ( function ( ) {
106+ index . clear ( ) ;
107+ } ) ;
108+ } ) ;
109+
110+ it ( "can update entries in the index" , function ( ) {
111+ var repo = this . repo ;
112+ var index = this . index ;
113+ var fileContent = {
114+ newFile1 : "this has some content" ,
115+ newFile2 : "and this will have more content"
116+ } ;
117+ var fileNames = Object . keys ( fileContent ) ;
118+
119+ return Promise . all ( fileNames . map ( function ( fileName ) {
120+ fse . writeFile ( path . join ( repo . workdir ( ) , fileName ) , fileContent [ fileName ] ) ;
121+ } ) )
122+ . then ( function ( ) {
123+ return index . addAll ( ) ;
124+ } )
125+ . then ( function ( ) {
126+ var newFiles = index . entries ( ) . filter ( function ( entry ) {
127+ return ~ fileNames . indexOf ( entry . path ( ) ) ;
128+ } ) ;
129+
130+ assert . equal ( newFiles . length , 2 ) ;
131+
132+ return fse . remove ( path . join ( repo . workdir ( ) , fileNames [ 0 ] ) ) ;
133+ } )
134+ . then ( function ( ) {
135+ return index . updateAll ( "newFile*" ) ;
136+ } )
137+ . then ( function ( ) {
138+ var newFiles = index . entries ( ) . filter ( function ( entry ) {
139+ return ~ fileNames . indexOf ( entry . path ( ) ) ;
140+ } ) ;
141+
142+ assert . equal ( newFiles . length , 1 ) ;
143+ return fse . remove ( path . join ( repo . workdir ( ) , fileNames [ 1 ] ) ) ;
57144 } ) ;
58145 } ) ;
59146} ) ;
0 commit comments