44namespace ScriptFUSION \Pip \Theme ;
55
66use PHPUnit \Util \Color ;
7+ use ScriptFUSION \Pip \TestPerformance ;
78use ScriptFUSION \Pip \TestResult ;
89use ScriptFUSION \Pip \TestStatus ;
910
@@ -14,11 +15,14 @@ public function onTestFinished(TestResult $result): void
1415 printf (
1516 "%3d%% %s %s %s%s " ,
1617 $ result ->calculateProgressPercentage (),
17- $ result ->status ->getStatusColour () === ''
18- ? $ result ->status ->getStatusCode ()
19- : Color::colorize ("fg- {$ result ->status ->getStatusColour ()}" , $ result ->status ->getStatusCode ()),
20- Color::colorize ("fg- {$ result ->status ->getColour ()}" , $ result ->id ),
21- Color::colorize ("fg- $ result ->testDurationColour " , "( $ result ->testDurationMs ms) " ),
18+ ($ statusColour = self ::getStatusColour ($ result ->status )) === ''
19+ ? self ::getStatusCode ($ result ->status )
20+ : Color::colorize ("fg- $ statusColour " , self ::getStatusCode ($ result ->status )),
21+ Color::colorize ("fg- " . self ::getColour ($ result ->status ), $ result ->id ),
22+ Color::colorize (
23+ 'fg- ' . self ::getPeformanceColour ($ result ->testPerformance ),
24+ "( $ result ->testDurationMs ms) "
25+ ),
2226 PHP_EOL ,
2327 );
2428
@@ -44,7 +48,7 @@ public function onTestFinished(TestResult $result): void
4448
4549 if ($ result ->trace ) {
4650 printf (
47- Color::colorize ("fg- { $ result -> status -> getColour ()} " , '%s%s: %s in %s on line %s%1$s%1$s ' ),
51+ Color::colorize ("fg- $ statusColour " , '%s%s: %s in %s on line %s%1$s%1$s ' ),
4852 PHP_EOL ,
4953 $ result ->status ->name ,
5054 $ result ->trace ->message ,
@@ -53,4 +57,47 @@ public function onTestFinished(TestResult $result): void
5357 );
5458 }
5559 }
60+
61+ private static function getStatusCode (TestStatus $ status ): string
62+ {
63+ return match ($ status ) {
64+ TestStatus::Passed => '. ' ,
65+ TestStatus::Flawed => '! ' ,
66+ default => $ status ->name [0 ],
67+ };
68+ }
69+
70+ private static function getStatusColour (TestStatus $ status ): string
71+ {
72+ return match ($ status ) {
73+ TestStatus::Passed => '' ,
74+ TestStatus::Flawed => 'red ' ,
75+ default => self ::getColour ($ status ),
76+ };
77+ }
78+
79+ private static function getColour (TestStatus $ status ): string
80+ {
81+ return match ($ status ) {
82+ TestStatus::Passed,
83+ TestStatus::Flawed => 'green,bold ' ,
84+ TestStatus::Failed,
85+ TestStatus::Errored => 'red,bold ' ,
86+ TestStatus::Skipped => 'cyan,bold ' ,
87+ TestStatus::Incomplete,
88+ TestStatus::Risky,
89+ TestStatus::Notice,
90+ TestStatus::Warning,
91+ TestStatus::Deprecated, => 'yellow,bold ' ,
92+ };
93+ }
94+
95+ private static function getPeformanceColour (TestPerformance $ performance ): string
96+ {
97+ return match ($ performance ) {
98+ TestPerformance::OK => 'green ' ,
99+ TestPerformance::Slow => 'yellow ' ,
100+ TestPerformance::VerySlow => 'red ' ,
101+ };
102+ }
56103}
0 commit comments