Skip to content

Commit 72a775e

Browse files
author
Robbie
committed
Make SlackExtension compatible with codeception 5 and php 8
1 parent db7a2e1 commit 72a775e

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

src/Extension/SlackExtension.php

+14-10
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
namespace Codeception\Extension;
44

5+
use Codeception\Event\PrintResultEvent;
56
use Codeception\Events;
67
use Codeception\Exception\ExtensionException;
78
use Codeception\Extension;
9+
use Codeception\ResultAggregator;
810
use Maknz\Slack\Client;
911
use Maknz\Slack\Message;
1012
use PHPUnit\Framework\TestFailure;
@@ -113,7 +115,7 @@ class SlackExtension extends Extension
113115
*
114116
* @throws ExtensionException in case required configuration for 'webhook' is missing
115117
*/
116-
public function _initialize()
118+
public function _initialize(): void
117119
{
118120
if (!isset($this->config['webhook']) or empty($this->config['webhook'])) {
119121
throw new ExtensionException($this, "configuration for 'webhook' is missing");
@@ -209,7 +211,7 @@ public function _initialize()
209211
* This method is fired when the event 'result.print.after' occurs.
210212
* @param \Codeception\Event\PrintResultEvent $e
211213
*/
212-
public function sendTestResults(\Codeception\Event\PrintResultEvent $e)
214+
public function sendTestResults(PrintResultEvent $e)
213215
{
214216
if (is_null($this->client)) {
215217
return;
@@ -242,31 +244,32 @@ public function sendTestResults(\Codeception\Event\PrintResultEvent $e)
242244
/**
243245
* Sends success message to Slack channels.
244246
*
245-
* @param TestResult $result
247+
* @param ResultAggregator $result
246248
*/
247-
private function sendSuccessMessage(TestResult $result)
249+
private function sendSuccessMessage(ResultAggregator $result)
248250
{
249-
$numberOfTests = $result->count();
251+
$numberOfTests = $result->testCount();
250252

251253
foreach ($this->channels as $channel) {
252254
$this->message->setChannel(trim($channel));
253-
$this->message->send(
255+
$this->message->setText(
254256
':white_check_mark: '
255257
. $this->messagePrefix
256258
. $numberOfTests . ' of ' . $numberOfTests . ' tests passed.'
257259
. str_replace('\\n', PHP_EOL, $this->messageSuffix)
258260
);
261+
$this->client->sendMessage($this->message);
259262
}
260263
}
261264

262265
/**
263266
* Sends fail message to Slack channels.
264267
*
265-
* @param TestResult $result
268+
* @param ResultAggregator $result
266269
*/
267-
private function sendFailMessage(TestResult $result)
270+
private function sendFailMessage(ResultAggregator $result)
268271
{
269-
$numberOfTests = $result->count();
272+
$numberOfTests = $result->testCount();
270273
$numberOfFailedTests = $result->failureCount() + $result->errorCount();
271274

272275
if (true === $this->extended) {
@@ -279,13 +282,14 @@ private function sendFailMessage(TestResult $result)
279282
foreach ($targetChannels as $channel) {
280283
$this->message->setChannel(trim($channel));
281284

282-
$this->message->send(
285+
$this->message->setText(
283286
':interrobang: '
284287
. $this->messagePrefix
285288
. $numberOfFailedTests . ' of ' . $numberOfTests . ' tests failed.'
286289
. str_replace('\\n', PHP_EOL, $this->messageSuffix)
287290
. $this->messageSuffixOnFail
288291
);
292+
$this->client->sendMessage($this->message);
289293
}
290294
}
291295

0 commit comments

Comments
 (0)