From f9a8e87563f4b4011d2e948f1c299137a6e5dfca Mon Sep 17 00:00:00 2001 From: Bei Xiao Date: Sun, 13 Mar 2022 21:29:18 +0200 Subject: [PATCH] SlackWebhookHandler: use footer for username & footer_icon for userIcon (#1617) * Use footer for username & footer_icon for userIcon * Update test case for SlackWebhookHandler --- src/Monolog/Handler/Slack/SlackRecord.php | 14 +++--- .../Handler/SlackWebhookHandlerTest.php | 49 +++++++++++++++++++ 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/src/Monolog/Handler/Slack/SlackRecord.php b/src/Monolog/Handler/Slack/SlackRecord.php index 13c3a102..71a41094 100644 --- a/src/Monolog/Handler/Slack/SlackRecord.php +++ b/src/Monolog/Handler/Slack/SlackRecord.php @@ -146,12 +146,14 @@ class SlackRecord if ($this->useAttachment) { $attachment = array( - 'fallback' => $message, - 'text' => $message, - 'color' => $this->getAttachmentColor($record['level']), - 'fields' => array(), - 'mrkdwn_in' => array('fields'), - 'ts' => $record['datetime']->getTimestamp(), + 'fallback' => $message, + 'text' => $message, + 'color' => $this->getAttachmentColor($record['level']), + 'fields' => array(), + 'mrkdwn_in' => array('fields'), + 'ts' => $record['datetime']->getTimestamp(), + 'footer' => $this->username, + 'footer_icon' => $this->userIcon, ); if ($this->useShortAttachment) { diff --git a/tests/Monolog/Handler/SlackWebhookHandlerTest.php b/tests/Monolog/Handler/SlackWebhookHandlerTest.php index 8ce72108..36990ebf 100644 --- a/tests/Monolog/Handler/SlackWebhookHandlerTest.php +++ b/tests/Monolog/Handler/SlackWebhookHandlerTest.php @@ -51,6 +51,8 @@ class SlackWebhookHandlerTest extends TestCase 'title' => 'Message', 'mrkdwn_in' => array('fields'), 'ts' => $record['datetime']->getTimestamp(), + 'footer' => null, + 'footer_icon' => null, ), ), ), $slackRecord->getSlackData($record)); @@ -84,6 +86,53 @@ class SlackWebhookHandlerTest extends TestCase ), $slackRecord->getSlackData($this->getRecord())); } + /** + * @covers ::__construct + * @covers ::getSlackRecord + */ + public function testConstructorFullWithAttachment() + { + $handler = new SlackWebhookHandler( + self::WEBHOOK_URL, + 'test-channel-with-attachment', + 'test-username-with-attachment', + true, + 'https://www.example.com/example.png', + false, + false, + Logger::DEBUG, + false + ); + + $record = $this->getRecord(); + $slackRecord = $handler->getSlackRecord(); + $this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord); + $this->assertEquals(array( + 'username' => 'test-username-with-attachment', + 'channel' => 'test-channel-with-attachment', + 'attachments' => array( + array( + 'fallback' => 'test', + 'text' => 'test', + 'color' => SlackRecord::COLOR_WARNING, + 'fields' => array( + array( + 'title' => 'Level', + 'value' => Logger::getLevelName(Logger::WARNING), + 'short' => false, + ), + ), + 'mrkdwn_in' => array('fields'), + 'ts' => $record['datetime']->getTimestamp(), + 'footer' => 'test-username-with-attachment', + 'footer_icon' => 'https://www.example.com/example.png', + 'title' => 'Message', + ), + ), + 'icon_url' => 'https://www.example.com/example.png', + ), $slackRecord->getSlackData($record)); + } + /** * @covers ::getFormatter */