Skip to content

Commit

Permalink
Make SlackExtension compatible with codeception 5 and php 8
Browse files Browse the repository at this point in the history
  • Loading branch information
Robbie committed Sep 2, 2022
1 parent db7a2e1 commit 72a775e
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions src/Extension/SlackExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

namespace Codeception\Extension;

use Codeception\Event\PrintResultEvent;
use Codeception\Events;
use Codeception\Exception\ExtensionException;
use Codeception\Extension;
use Codeception\ResultAggregator;
use Maknz\Slack\Client;
use Maknz\Slack\Message;
use PHPUnit\Framework\TestFailure;
Expand Down Expand Up @@ -113,7 +115,7 @@ class SlackExtension extends Extension
*
* @throws ExtensionException in case required configuration for 'webhook' is missing
*/
public function _initialize()
public function _initialize(): void
{
if (!isset($this->config['webhook']) or empty($this->config['webhook'])) {
throw new ExtensionException($this, "configuration for 'webhook' is missing");
Expand Down Expand Up @@ -209,7 +211,7 @@ public function _initialize()
* This method is fired when the event 'result.print.after' occurs.
* @param \Codeception\Event\PrintResultEvent $e
*/
public function sendTestResults(\Codeception\Event\PrintResultEvent $e)
public function sendTestResults(PrintResultEvent $e)
{
if (is_null($this->client)) {
return;
Expand Down Expand Up @@ -242,31 +244,32 @@ public function sendTestResults(\Codeception\Event\PrintResultEvent $e)
/**
* Sends success message to Slack channels.
*
* @param TestResult $result
* @param ResultAggregator $result
*/
private function sendSuccessMessage(TestResult $result)
private function sendSuccessMessage(ResultAggregator $result)
{
$numberOfTests = $result->count();
$numberOfTests = $result->testCount();

foreach ($this->channels as $channel) {
$this->message->setChannel(trim($channel));
$this->message->send(
$this->message->setText(
':white_check_mark: '
. $this->messagePrefix
. $numberOfTests . ' of ' . $numberOfTests . ' tests passed.'
. str_replace('\\n', PHP_EOL, $this->messageSuffix)
);
$this->client->sendMessage($this->message);
}
}

/**
* Sends fail message to Slack channels.
*
* @param TestResult $result
* @param ResultAggregator $result
*/
private function sendFailMessage(TestResult $result)
private function sendFailMessage(ResultAggregator $result)
{
$numberOfTests = $result->count();
$numberOfTests = $result->testCount();
$numberOfFailedTests = $result->failureCount() + $result->errorCount();

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

$this->message->send(
$this->message->setText(
':interrobang: '
. $this->messagePrefix
. $numberOfFailedTests . ' of ' . $numberOfTests . ' tests failed.'
. str_replace('\\n', PHP_EOL, $this->messageSuffix)
. $this->messageSuffixOnFail
);
$this->client->sendMessage($this->message);
}
}

Expand Down

0 comments on commit 72a775e

Please sign in to comment.