@@ -28,6 +28,8 @@ index 123..456 789
28
28
const file = files [ 0 ] ;
29
29
expect ( file . from ) . toBe ( "file" ) ;
30
30
expect ( file . to ) . toBe ( "file" ) ;
31
+ expect ( file . oldMode ) . toBe ( "789" ) ;
32
+ expect ( file . newMode ) . toBe ( "789" ) ;
31
33
expect ( file . deletions ) . toBe ( 1 ) ;
32
34
expect ( file . additions ) . toBe ( 1 ) ;
33
35
expect ( file . chunks . length ) . toBe ( 1 ) ;
@@ -85,6 +87,8 @@ Binary files a/Artsy_Tests/ReferenceImages/ARTopMenuViewControllerSpec/selects '
85
87
expect ( file . to ) . toBe (
86
88
"Artsy_Tests/ReferenceImages/ARTopMenuViewControllerSpec/selects 'home' by default as ipad@2x.png"
87
89
) ;
90
+ expect ( file . oldMode ) . toBe ( "100644" ) ;
91
+ expect ( file . newMode ) . toBe ( "100644" ) ;
88
92
} ) ;
89
93
90
94
it ( "should parse diff with new file mode line" , function ( ) {
@@ -102,6 +106,7 @@ index 0000000..db81be4
102
106
expect ( files . length ) . toBe ( 1 ) ;
103
107
const file = files [ 0 ] ;
104
108
expect ( file . new ) . toBeTruthy ( ) ;
109
+ expect ( file . newMode ) . toBe ( "100644" ) ;
105
110
expect ( file . from ) . toBe ( "/dev/null" ) ;
106
111
expect ( file . to ) . toBe ( "test" ) ;
107
112
expect ( file . chunks [ 0 ] . content ) . toBe ( "@@ -0,0 +1,2 @@" ) ;
@@ -125,6 +130,7 @@ index db81be4..0000000
125
130
expect ( files . length ) . toBe ( 1 ) ;
126
131
const file = files [ 0 ] ;
127
132
expect ( file . deleted ) . toBeTruthy ( ) ;
133
+ expect ( file . oldMode ) . toBe ( "100644" ) ;
128
134
expect ( file . from ) . toBe ( "test" ) ;
129
135
expect ( file . to ) . toBe ( "/dev/null" ) ;
130
136
expect ( file . chunks [ 0 ] . content ) . toBe ( "@@ -1,2 +0,0 @@" ) ;
@@ -133,6 +139,35 @@ index db81be4..0000000
133
139
expect ( file . chunks [ 0 ] . changes [ 1 ] . content ) . toBe ( "-line2" ) ;
134
140
} ) ;
135
141
142
+ it ( "should parse diff with old and new mode lines" , function ( ) {
143
+ const diff = `\
144
+ diff --git a/file b/file
145
+ old mode 100644
146
+ new mode 100755
147
+ index 123..456
148
+ --- a/file
149
+ +++ b/file
150
+ @@ -1,2 +1,2 @@
151
+ - line1
152
+ + line2\
153
+ ` ;
154
+ const files = parse ( diff ) ;
155
+ expect ( files . length ) . toBe ( 1 ) ;
156
+ const file = files [ 0 ] ;
157
+ expect ( file . oldMode ) . toBe ( "100644" ) ;
158
+ expect ( file . newMode ) . toBe ( "100755" ) ;
159
+ expect ( file . from ) . toBe ( "file" ) ;
160
+ expect ( file . to ) . toBe ( "file" ) ;
161
+ expect ( file . deletions ) . toBe ( 1 ) ;
162
+ expect ( file . additions ) . toBe ( 1 ) ;
163
+ expect ( file . chunks . length ) . toBe ( 1 ) ;
164
+ const chunk = file . chunks [ 0 ] ;
165
+ expect ( chunk . content ) . toBe ( "@@ -1,2 +1,2 @@" ) ;
166
+ expect ( chunk . changes . length ) . toBe ( 2 ) ;
167
+ expect ( chunk . changes [ 0 ] . content ) . toBe ( "- line1" ) ;
168
+ expect ( chunk . changes [ 1 ] . content ) . toBe ( "+ line2" ) ;
169
+ } ) ;
170
+
136
171
it ( "should parse diff with single line files" , function ( ) {
137
172
const diff = `\
138
173
diff --git a/file1 b/file1
@@ -154,6 +189,7 @@ index 0000000..db81be4
154
189
expect ( files . length ) . toBe ( 2 ) ;
155
190
let file = files [ 0 ] ;
156
191
expect ( file . deleted ) . toBeTruthy ( ) ;
192
+ expect ( file . oldMode ) . toBe ( "100644" ) ;
157
193
expect ( file . from ) . toBe ( "file1" ) ;
158
194
expect ( file . to ) . toBe ( "/dev/null" ) ;
159
195
expect ( file . chunks [ 0 ] . content ) . toBe ( "@@ -1 +0,0 @@" ) ;
@@ -162,6 +198,7 @@ index 0000000..db81be4
162
198
expect ( file . chunks [ 0 ] . changes [ 0 ] . type ) . toBe ( "del" ) ;
163
199
file = files [ 1 ] ;
164
200
expect ( file . new ) . toBeTruthy ( ) ;
201
+ expect ( file . newMode ) . toBe ( "100644" ) ;
165
202
expect ( file . from ) . toBe ( "/dev/null" ) ;
166
203
expect ( file . to ) . toBe ( "file2" ) ;
167
204
expect ( file . chunks [ 0 ] . content ) . toBe ( "@@ -0,0 +1 @@" ) ;
@@ -196,13 +233,17 @@ index 123..456 789
196
233
let file = files [ 0 ] ;
197
234
expect ( file . from ) . toBe ( "file1" ) ;
198
235
expect ( file . to ) . toBe ( "file1" ) ;
236
+ expect ( file . oldMode ) . toBe ( "789" ) ;
237
+ expect ( file . newMode ) . toBe ( "789" ) ;
199
238
expect ( file . chunks [ 0 ] . content ) . toBe ( "@@ -1,1 +1,1 @@" ) ;
200
239
expect ( file . chunks [ 0 ] . changes . length ) . toBe ( 2 ) ;
201
240
expect ( file . chunks [ 0 ] . changes [ 0 ] . content ) . toBe ( "- line1" ) ;
202
241
expect ( file . chunks [ 0 ] . changes [ 1 ] . content ) . toBe ( "+ line2" ) ;
203
242
file = files [ 1 ] ;
204
243
expect ( file . from ) . toBe ( "file2" ) ;
205
244
expect ( file . to ) . toBe ( "file2" ) ;
245
+ expect ( file . oldMode ) . toBe ( "789" ) ;
246
+ expect ( file . newMode ) . toBe ( "789" ) ;
206
247
expect ( file . chunks [ 0 ] . content ) . toBe ( "@@ -1,1 +1,1 @@" ) ;
207
248
expect ( file . chunks [ 0 ] . changes . length ) . toBe ( 2 ) ;
208
249
expect ( file . chunks [ 0 ] . changes [ 0 ] . content ) . toBe ( "- line1" ) ;
@@ -225,6 +266,8 @@ index 123..456 789
225
266
const file = files [ 0 ] ;
226
267
expect ( file . from ) . toBe ( "file1" ) ;
227
268
expect ( file . to ) . toBe ( "file1" ) ;
269
+ expect ( file . oldMode ) . toBe ( "789" ) ;
270
+ expect ( file . newMode ) . toBe ( "789" ) ;
228
271
const chunk = file . chunks [ 0 ] ;
229
272
expect ( chunk . content ) . toBe ( "@@ -1,1 +1,1 @@" ) ;
230
273
expect ( chunk . changes . length ) . toBe ( 3 ) ;
@@ -340,6 +383,7 @@ index 0000000..e6a2e28\
340
383
const file = files [ 0 ] ;
341
384
expect ( file . from ) . toBe ( "/dev/null" ) ;
342
385
expect ( file . to ) . toBe ( "newFile.txt" ) ;
386
+ expect ( file . newMode ) . toBe ( "100644" ) ;
343
387
} ) ;
344
388
345
389
it ( "should parse file names for a deleted file" , function ( ) {
@@ -353,6 +397,7 @@ index e6a2e28..0000000\
353
397
const file = files [ 0 ] ;
354
398
expect ( file . from ) . toBe ( "deletedFile.txt" ) ;
355
399
expect ( file . to ) . toBe ( "/dev/null" ) ;
400
+ expect ( file . oldMode ) . toBe ( "100644" ) ;
356
401
} ) ;
357
402
358
403
it ( "should parse rename diff with space in path with no changes" , function ( ) {
@@ -408,6 +453,8 @@ index 9daeafb..88bd214 100644
408
453
const [ file ] = files ;
409
454
expect ( file . from ) . toBe ( `file \\"space\\"` ) ;
410
455
expect ( file . to ) . toBe ( `file \\"space\\"` ) ;
456
+ expect ( file . oldMode ) . toBe ( "100644" ) ;
457
+ expect ( file . newMode ) . toBe ( "100644" ) ;
411
458
} ) ;
412
459
413
460
it ( "should parse files with additional '-' and '+'" , function ( ) {
@@ -435,10 +482,14 @@ index 123..456 789
435
482
436
483
expect ( file1 . from ) . toBe ( `file1` ) ;
437
484
expect ( file1 . to ) . toBe ( `file1` ) ;
485
+ expect ( file1 . oldMode ) . toBe ( "789" ) ;
486
+ expect ( file1 . newMode ) . toBe ( "789" ) ;
438
487
expect ( file1 . chunks [ 0 ] . changes . length ) . toBe ( 3 ) ;
439
488
440
489
expect ( file2 . from ) . toBe ( `file2` ) ;
441
490
expect ( file2 . to ) . toBe ( `file2` ) ;
491
+ expect ( file2 . oldMode ) . toBe ( "789" ) ;
492
+ expect ( file2 . newMode ) . toBe ( "789" ) ;
442
493
expect ( file2 . chunks [ 0 ] . changes . length ) . toBe ( 3 ) ;
443
494
} ) ;
444
495
} ) ;
0 commit comments