-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(alerts): Prevent muting alerts (#77016)
- Loading branch information
Showing
2 changed files
with
58 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,6 +30,20 @@ class PostRuleSnoozeTest(BaseRuleSnoozeTest): | |
endpoint = "sentry-api-0-rule-snooze" | ||
method = "post" | ||
|
||
def test_cannot_mute_unowned_alert(self): | ||
user2 = self.create_user("[email protected]") | ||
org2 = self.create_organization(name="Other Org", owner=user2) | ||
project2 = self.create_project(organization=org2, name="Other Project") | ||
self.login_as(user2) | ||
response = self.get_error_response( | ||
org2.slug, | ||
project2.slug, | ||
self.issue_alert_rule.id, | ||
target="everyone", | ||
status_code=404, | ||
) | ||
assert response.data["detail"] == "Rule does not exist" | ||
|
||
def test_mute_issue_alert_user_forever(self): | ||
"""Test that a user can mute an issue alert rule for themselves forever""" | ||
response = self.get_success_response( | ||
|
@@ -277,19 +291,18 @@ def test_user_can_mute_unassigned_issue_alert(self): | |
def test_no_issue_alert(self): | ||
"""Test that we throw an error when an issue alert rule doesn't exist""" | ||
response = self.get_error_response( | ||
self.organization.slug, self.project.slug, 777, target="me", status_code=400 | ||
self.organization.slug, self.project.slug, 777, target="me", status_code=404 | ||
) | ||
assert not RuleSnooze.objects.filter(alert_rule=self.issue_alert_rule.id).exists() | ||
assert response.status_code == 400 | ||
assert "Rule does not exist" in response.data | ||
assert response.data["detail"] == "Rule does not exist" | ||
|
||
def test_invalid_data_issue_alert(self): | ||
"""Test that we throw an error when passed invalid data""" | ||
data = {"target": "me", "until": 123} | ||
response = self.get_error_response( | ||
self.organization.slug, | ||
self.project.slug, | ||
self.metric_alert_rule.id, | ||
self.issue_alert_rule.id, | ||
**data, | ||
status_code=400, | ||
) | ||
|
@@ -573,10 +586,10 @@ def test_user_can_mute_unassigned_metric_alert(self): | |
def test_no_metric_alert(self): | ||
"""Test that we throw an error when a metric alert rule doesn't exist""" | ||
response = self.get_error_response( | ||
self.organization.slug, self.project.slug, 777, target="me", status_code=400 | ||
self.organization.slug, self.project.slug, 777, target="me", status_code=404 | ||
) | ||
assert not RuleSnooze.objects.filter(alert_rule=self.metric_alert_rule.id).exists() | ||
assert "Rule does not exist" in response.data | ||
assert response.data["detail"] == "Rule does not exist" | ||
|
||
|
||
class DeleteMetricRuleSnoozeTest(BaseRuleSnoozeTest): | ||
|