test_embed_api.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import uuid
  2. from django.urls import reverse
  3. from model_bakery import baker
  4. from apps.issue_events.models import UserReport
  5. from .utils import EventIngestTestCase
  6. class ErrorPageEmbedTestCase(EventIngestTestCase):
  7. def setUp(self):
  8. self.url = reverse("api:get_embed_error_page")
  9. self.project = baker.make("projects.Project")
  10. self.project_key = baker.make("projects.ProjectKey", project=self.project)
  11. def test_get_not_found(self):
  12. res = self.client.get(self.url)
  13. # Slight deviation from OSS Sentry as it would 404, but better consistency with DRF
  14. self.assertEqual(res.status_code, 401)
  15. params = {"dsn": "lol", "eventId": uuid.uuid4().hex}
  16. res = self.client.get(self.url, params)
  17. self.assertEqual(res.status_code, 401)
  18. def test_get_embed(self):
  19. params = {"dsn": self.project_key.get_dsn(), "eventId": uuid.uuid4().hex}
  20. res = self.client.get(self.url, params)
  21. self.assertContains(res, self.project_key.public_key.hex)
  22. def test_submit_report(self):
  23. params = f"?dsn={self.project_key.get_dsn()}&eventId={uuid.uuid4().hex}"
  24. data = {"name": "Test Name", "email": "test@example.com", "comments": "hmm"}
  25. res = self.client.post(self.url + params, data)
  26. self.assertEqual(res.status_code, 200)
  27. self.assertTrue(UserReport.objects.filter(project=self.project).exists())
  28. def test_submit_report_with_issue(self):
  29. issue = baker.make("issue_events.Issue", project=self.project)
  30. event = baker.make("issue_events.IssueEvent", issue=issue)
  31. params = f"?dsn={self.project_key.get_dsn()}&eventId={event.id.hex}"
  32. data = {"name": "Test Name", "email": "test@example.com", "comments": "hmm"}
  33. res = self.client.post(self.url + params, data)
  34. self.assertEqual(res.status_code, 200)
  35. created_report = UserReport.objects.filter(issue=issue).first()
  36. self.assertEqual(created_report.comments, data["comments"])
  37. self.assertEqual(created_report.name, data["name"])