diff --git a/rhodecode/tests/integrations/test_slack.py b/rhodecode/tests/integrations/test_slack.py index 7e2babee..2740f25e 100644 --- a/rhodecode/tests/integrations/test_slack.py +++ b/rhodecode/tests/integrations/test_slack.py @@ -151,3 +151,46 @@ def test_slack_data_handler_wrong_event(): def test_slack_data_handler(app, event_type: events.RhodecodeEvent, args, base_slack_data): handler = SlackDataHandler() handler(event_type(*args), base_slack_data) + + +def test_slack_pull_request_branch_info_display(app, base_slack_data): + """Test that branch information is correctly displayed in slack notifications""" + handler = SlackDataHandler() + + mock_pr = mock.MagicMock() + mock_pr.source_ref_parts.name = "feature/login-improvements" + mock_pr.target_ref_parts.name = "main" + + mock_event = mock.MagicMock() + mock_event.__class__ = events.PullRequestCreateEvent + mock_event.pullrequest = mock_pr + + slack_data = SlackData(title="default", text="default") + + result = handler.format_pull_request_event(mock_event, base_slack_data, slack_data) + assert "feature/login-improvements → main" in result.text + + +def test_slack_pull_request_different_actions(app, base_slack_data): + handler = SlackDataHandler() + + mock_pr = mock.MagicMock() + mock_pr.source_ref_parts.name = "bugfix/JIRA-456" + mock_pr.target_ref_parts.name = "develop" + + slack_data = SlackData(title="default", text="default") + branch_info = "bugfix/JIRA-456 → develop" + + # Test different PR event types + for event_class in [ + events.PullRequestCreateEvent, + events.PullRequestUpdateEvent, + events.PullRequestMergeEvent, + events.PullRequestCloseEvent, + ]: + mock_event = mock.MagicMock() + mock_event.__class__ = event_class + mock_event.pullrequest = mock_pr + + result = handler.format_pull_request_event(mock_event, base_slack_data, slack_data) + assert branch_info in result.text, f"Branch info missing for {event_class.__name__}"