2
2
3
3
namespace Codeception \Extension ;
4
4
5
+ use Codeception \Event \PrintResultEvent ;
5
6
use Codeception \Events ;
6
7
use Codeception \Exception \ExtensionException ;
7
8
use Codeception \Extension ;
9
+ use Codeception \ResultAggregator ;
8
10
use Maknz \Slack \Client ;
9
11
use Maknz \Slack \Message ;
10
12
use PHPUnit \Framework \TestFailure ;
@@ -113,7 +115,7 @@ class SlackExtension extends Extension
113
115
*
114
116
* @throws ExtensionException in case required configuration for 'webhook' is missing
115
117
*/
116
- public function _initialize ()
118
+ public function _initialize (): void
117
119
{
118
120
if (!isset ($ this ->config ['webhook ' ]) or empty ($ this ->config ['webhook ' ])) {
119
121
throw new ExtensionException ($ this , "configuration for 'webhook' is missing " );
@@ -209,7 +211,7 @@ public function _initialize()
209
211
* This method is fired when the event 'result.print.after' occurs.
210
212
* @param \Codeception\Event\PrintResultEvent $e
211
213
*/
212
- public function sendTestResults (\ Codeception \ Event \ PrintResultEvent $ e )
214
+ public function sendTestResults (PrintResultEvent $ e )
213
215
{
214
216
if (is_null ($ this ->client )) {
215
217
return ;
@@ -242,31 +244,32 @@ public function sendTestResults(\Codeception\Event\PrintResultEvent $e)
242
244
/**
243
245
* Sends success message to Slack channels.
244
246
*
245
- * @param TestResult $result
247
+ * @param ResultAggregator $result
246
248
*/
247
- private function sendSuccessMessage (TestResult $ result )
249
+ private function sendSuccessMessage (ResultAggregator $ result )
248
250
{
249
- $ numberOfTests = $ result ->count ();
251
+ $ numberOfTests = $ result ->testCount ();
250
252
251
253
foreach ($ this ->channels as $ channel ) {
252
254
$ this ->message ->setChannel (trim ($ channel ));
253
- $ this ->message ->send (
255
+ $ this ->message ->setText (
254
256
':white_check_mark: '
255
257
. $ this ->messagePrefix
256
258
. $ numberOfTests . ' of ' . $ numberOfTests . ' tests passed. '
257
259
. str_replace ('\\n ' , PHP_EOL , $ this ->messageSuffix )
258
260
);
261
+ $ this ->client ->sendMessage ($ this ->message );
259
262
}
260
263
}
261
264
262
265
/**
263
266
* Sends fail message to Slack channels.
264
267
*
265
- * @param TestResult $result
268
+ * @param ResultAggregator $result
266
269
*/
267
- private function sendFailMessage (TestResult $ result )
270
+ private function sendFailMessage (ResultAggregator $ result )
268
271
{
269
- $ numberOfTests = $ result ->count ();
272
+ $ numberOfTests = $ result ->testCount ();
270
273
$ numberOfFailedTests = $ result ->failureCount () + $ result ->errorCount ();
271
274
272
275
if (true === $ this ->extended ) {
@@ -279,13 +282,14 @@ private function sendFailMessage(TestResult $result)
279
282
foreach ($ targetChannels as $ channel ) {
280
283
$ this ->message ->setChannel (trim ($ channel ));
281
284
282
- $ this ->message ->send (
285
+ $ this ->message ->setText (
283
286
':interrobang: '
284
287
. $ this ->messagePrefix
285
288
. $ numberOfFailedTests . ' of ' . $ numberOfTests . ' tests failed. '
286
289
. str_replace ('\\n ' , PHP_EOL , $ this ->messageSuffix )
287
290
. $ this ->messageSuffixOnFail
288
291
);
292
+ $ this ->client ->sendMessage ($ this ->message );
289
293
}
290
294
}
291
295
0 commit comments