Skip to content

Commit f5e54c5

Browse files
committed
Add tests for CLI diff coloring
1 parent 99d4ff3 commit f5e54c5

10 files changed

+67
-1
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
vendor/
2+
tests/examples/*.out
23
*.swp
34
*.swo
45
.DS_Store

tests/StringDiffTest.php

+27-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
namespace Facebook\DiffLib;
1212

13-
use namespace HH\Lib\{C, Vec};
13+
use namespace HH\Lib\{C, Str, Vec};
1414
use function Facebook\FBExpect\expect;
1515

1616
/** Test string-specific functionality */
@@ -67,4 +67,30 @@ public function testUnifiedDiff(string $name): void {
6767
$name,
6868
);
6969
}
70+
71+
<<DataProvider('provideExamples')>>
72+
public function testCLIColoredDiff(string $name): void {
73+
$base = __DIR__.'/examples/'.$name;
74+
$a = \file_get_contents($base.'.a');
75+
$b = \file_get_contents($base.'.b');
76+
$diff = CLIColoredUnifiedDiff::create($a, $b);
77+
78+
\file_put_contents($base.'.clidiff.out', $diff);
79+
80+
if (!\file_exists($base.'.clidiff.expect')) {
81+
self::markTestIncomplete(Str\format(
82+
"No expect file present; maybe:\n cp %s.clidiff.out %s.clidiff.expect",
83+
$base,
84+
$base,
85+
));
86+
}
87+
88+
expect($diff)->toBeSame(
89+
\file_get_contents($base.'.clidiff.expect'),
90+
'Did not match expected contents (- %s.clidiff.expect, +%s.clidiff.out)',
91+
$name,
92+
$name,
93+
$name,
94+
);
95+
}
7096
}
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@@ -1,3 +1,2 @@
2+
 foo
3+
-bar
4+
 baz
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@@ -1,2 +1,3 @@
2+
 foo
3+
+bar
4+
 baz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@@ -8,7 +8,7 @@
2+
 8
3+
 9
4+
 0
5+
-foo bat baz
6+
+foo bar baz
7+
 1
8+
 2
9+
 3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@@ -1 +1,2 @@
2+
-Foo
3+
+Bar
4+
+Baz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@@ -1,3 +1,3 @@
2+
 foo
3+
 bar
4+
-baz
5+
+herp
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
@@ -1,3 +1,3 @@
2+
 foo
3+
-bar
4+
-baz
5+
+herp
6+
+derp
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@@ -1 +1 @@
2+
-Framework
3+
+Facebook
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@@ -1,2 +1 @@
2+
-Foo
3+
-Bar
4+
+Baz

0 commit comments

Comments
 (0)