4
4
namespace ScriptFUSION \Pip \Theme ;
5
5
6
6
use PHPUnit \Util \Color ;
7
+ use ScriptFUSION \Pip \TestPerformance ;
7
8
use ScriptFUSION \Pip \TestResult ;
8
9
use ScriptFUSION \Pip \TestStatus ;
9
10
@@ -14,11 +15,14 @@ public function onTestFinished(TestResult $result): void
14
15
printf (
15
16
"%3d%% %s %s %s%s " ,
16
17
$ 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
+ ),
22
26
PHP_EOL ,
23
27
);
24
28
@@ -44,7 +48,7 @@ public function onTestFinished(TestResult $result): void
44
48
45
49
if ($ result ->trace ) {
46
50
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 ' ),
48
52
PHP_EOL ,
49
53
$ result ->status ->name ,
50
54
$ result ->trace ->message ,
@@ -53,4 +57,47 @@ public function onTestFinished(TestResult $result): void
53
57
);
54
58
}
55
59
}
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
+ }
56
103
}
0 commit comments