Files
zulip/zerver/webhooks/opbeat/tests.py
Riken Shah a96c614420 message: Fix the edit topic bug by removing leading \n from msg content.
The reason for this bug is because of different striping
processes in the backend and frontend, i.e The frontend
checks if the message's `raw_content` has changed to
decide if the `content` of the message should be sent in
the request to the backend, or not. So, it removes the
leading new line ('\n') from the message `raw_content`
when checking it, which is causing the "Error saving edit:
You don't have permission to edit this message" error.

This commit fixes it by removing the leading new line
when cleaning message content.

The bug was explained by @punchagan and its solution
by @timabbott.
2021-07-06 09:41:54 -07:00

98 lines
3.1 KiB
Python

from zerver.lib.test_classes import WebhookTestCase
from zerver.webhooks.opbeat.view import get_value
class OpbeatHookTests(WebhookTestCase):
STREAM_NAME = "opbeat"
URL_TEMPLATE = "/api/v1/external/opbeat?api_key={api_key}&stream={stream}"
WEBHOOK_DIR_NAME = "opbeat"
def test_comment(self) -> None:
expected_topic = "foo commented on E#2"
expected_message = """\
**[foo commented on E#2](https://opbeat.com/foo/test-flask-app/errors/2/#activity-5df00003ea4e42458db48446692f6d37)**
test comment
**[E#2](https://opbeat.com/foo/test-flask-app/errors/2/)**
>**Most recent Occurrence**
>in app.py
>A warning occurred (42 apples)"""
self.check_webhook(
"new_comment", expected_topic, expected_message, content_type="application/json"
)
def test_new_app(self) -> None:
expected_topic = "foo"
expected_message = """\
**foo**
App foo created
**[foo](https://opbeat.com/bar/foo/)**
>language: nodejs
>framework: custom"""
self.check_webhook(
"new_app", expected_topic, expected_message, content_type="application/json"
)
def test_get_empty_value(self) -> None:
self.assertEqual(get_value({"key": "value"}, "foo"), "")
def test_no_subject_type(self) -> None:
expected_topic = "test title"
expected_message = """\
**test title**
test summary"""
self.check_webhook(
"unsupported_object",
expected_topic,
expected_message,
content_type="application/json",
)
def test_error_fixed(self) -> None:
expected_topic = "foo marked E#2 as fixed"
expected_message = """\
**[foo marked E#2 as fixed](https://opbeat.com/test_org/test-flask-app/errors/2/#activity-bf991a45d9184b0ca6fb3d48d3db4c38)**
foo marked the error group as fixed
**[E#2](https://opbeat.com/test_org/test-flask-app/errors/2/)**
>**Most recent Occurrence**
>in app.py
>A warning occurred (42 apples)"""
self.check_webhook(
"error_fixed", expected_topic, expected_message, content_type="application/json"
)
def test_error_reopened(self) -> None:
expected_topic = "foo reopened E#2"
expected_message = """\
**[foo reopened E#2](https://opbeat.com/test_org/test-flask-app/errors/2/#activity-38a556dfc0b04a59a586359bbce1463d)**
foo reopened the error group
**[E#2](https://opbeat.com/test_org/test-flask-app/errors/2/)**
>**Most recent Occurrence**
>in app.py
>A warning occurred (42 apples)"""
self.check_webhook(
"error_reopen", expected_topic, expected_message, content_type="application/json"
)
def test_error_regressed(self) -> None:
expected_topic = "E#2 regressed"
expected_message = """\
**[E#2 regressed](https://opbeat.com/test_org/test-flask-app/errors/2/#activity-c0396f38323a4fa7b314f87d5ed9cdd2)**
The error group regressed
**[E#2](https://opbeat.com/test_org/test-flask-app/errors/2/)**
>**Most recent Occurrence**
>in app.py
>A warning occurred (42 apples)"""
self.check_webhook(
"new_error", expected_topic, expected_message, content_type="application/json"
)