@@ -62,15 +62,47 @@ exports.addBuildPhase = {
6262 fileRefs = [ ] ;
6363
6464 for ( var index = 0 ; index < buildPhase . files . length ; index ++ ) {
65- var file = buildPhase . files [ index ] ;
66- fileRefs . push ( buildFileSection [ file . value ] . fileRef ) ;
65+ var file = buildPhase . files [ index ] ,
66+ fileRef = buildFileSection [ file . value ] . fileRef ;
67+
68+ test . ok ( fileRefSection [ fileRef ] ) ;
6769 }
70+
71+ test . done ( ) ;
72+ } ,
73+ 'should not add files to PBXFileReference section if already added' : function ( test ) {
74+ var fileRefSection = proj . pbxFileReferenceSection ( ) ,
75+ initialFileReferenceSectionItemsCount = Object . keys ( fileRefSection ) ,
76+ buildPhase = proj . addBuildPhase ( [ 'AppDelegate.m' , 'main.m' ] , 'PBXResourcesBuildPhase' , 'My build phase' ) . buildPhase ,
77+ afterAdditionBuildFileSectionItemsCount = Object . keys ( fileRefSection ) ;
78+
79+ test . deepEqual ( initialFileReferenceSectionItemsCount , afterAdditionBuildFileSectionItemsCount ) ;
80+ test . done ( ) ;
81+ } ,
82+ 'should not add files to PBXBuildFile section if already added' : function ( test ) {
83+ var buildFileSection = proj . pbxBuildFileSection ( ) ,
84+ initialBuildFileSectionItemsCount = Object . keys ( buildFileSection ) ,
85+ buildPhase = proj . addBuildPhase ( [ 'AppDelegate.m' , 'main.m' ] , 'PBXResourcesBuildPhase' , 'My build phase' ) . buildPhase ,
86+ afterAdditionBuildFileSectionItemsCount = Object . keys ( buildFileSection ) ;
6887
69- for ( var index = 0 ; index < fileRefs . length ; index ++ ) {
70- var fileRef = fileRefs [ index ] ;
88+ test . deepEqual ( initialBuildFileSectionItemsCount , afterAdditionBuildFileSectionItemsCount ) ;
89+ test . done ( ) ;
90+ } ,
91+ 'should add only missing files to PBXFileReference section' : function ( test ) {
92+ var fileRefSection = proj . pbxFileReferenceSection ( ) ,
93+ buildFileSection = proj . pbxBuildFileSection ( ) ,
94+ initialFileReferenceSectionItemsCount = Object . keys ( fileRefSection ) ,
95+ buildPhase = proj . addBuildPhase ( [ 'file.m' , 'AppDelegate.m' ] , 'PBXResourcesBuildPhase' , 'My build phase' ) . buildPhase ,
96+ afterAdditionBuildFileSectionItemsCount = Object . keys ( fileRefSection ) ;
97+
98+ for ( var index = 0 ; index < buildPhase . files . length ; index ++ ) {
99+ var file = buildPhase . files [ index ] ,
100+ fileRef = buildFileSection [ file . value ] . fileRef ;
101+
71102 test . ok ( fileRefSection [ fileRef ] ) ;
72103 }
73-
104+
105+ test . deepEqual ( initialFileReferenceSectionItemsCount . length , afterAdditionBuildFileSectionItemsCount . length - 2 ) ;
74106 test . done ( ) ;
75107 }
76108}
0 commit comments