Browse Source

ref(issue-list-removal): Remove issue-list-removal-action feature flag (#50248)

- Remove feature flag
- Remove duplicated acceptance tests that tested with the flag being off
Malachi Willey 1 year ago
parent
commit
96884ac59d

+ 0 - 9
fixtures/page_objects/issue_list.py

@@ -26,15 +26,6 @@ class IssueListPage(BasePage):
 
     def resolve_issues(self):
         self.browser.click('[aria-label="Resolve"]')
-        self.browser.click('[data-test-id="confirm-button"]')
-
-    # TODO(Kelly): update once issue-list-removal-action feature is stable
-    def resolve_issues_removal(self):
-        self.browser.click('[aria-label="Resolve"]')
-
-    def wait_for_resolved_issue(self):
-        self.browser.wait_until_not('[data-test-id="toast-loading"]')
-        self.browser.wait_until('[data-test-id="resolved-issue"]')
 
     def wait_for_issue_removal(self):
         self.browser.click_when_visible('[data-test-id="toast-success"]')

+ 0 - 2
src/sentry/conf/server.py

@@ -1393,8 +1393,6 @@ SENTRY_FEATURES = {
     "organizations:sql-format": False,
     # Enable prefetching of issues from the issue list when hovered
     "organizations:issue-list-prefetch-issue-on-hover": False,
-    # Enable removing issue from issue list if action taken.
-    "organizations:issue-list-removal-action": False,
     # Enable better priority sort algorithm.
     "organizations:issue-list-better-priority-sort": False,
     # Adds the ttid & ttfd vitals to the frontend

+ 0 - 1
src/sentry/features/__init__.py

@@ -90,7 +90,6 @@ default_manager.add("organizations:issue-alert-test-notifications", Organization
 default_manager.add("organizations:sql-format", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:issue-details-tag-improvements", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:issue-list-prefetch-issue-on-hover", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
-default_manager.add("organizations:issue-list-removal-action", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:issue-list-better-priority-sort", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:issue-platform", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:issue-search-allow-postgres-only-search", OrganizationFeature, FeatureHandlerStrategy.REMOTE)

+ 58 - 107
tests/acceptance/test_organization_group_index.py

@@ -79,34 +79,37 @@ class OrganizationGroupIndexTest(AcceptanceTestCase, SnubaTestCase):
         assert "oh no" in groups[1].text
 
     @patch("django.utils.timezone.now")
-    def test_resolve_issues(self, mock_now):
+    def test_resolve_issues_removal(self, mock_now):
         mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
         self.create_issues()
+        group1 = self.event_a.group
+
         self.page.visit_issue_list(self.org.slug)
         self.page.wait_for_stream()
 
         self.page.select_issue(1)
-        self.page.select_issue(2)
         self.page.resolve_issues()
 
-        self.page.wait_for_resolved_issue()
-        resolved_groups = self.page.find_resolved_issues()
+        group1.update(status=GroupStatus.RESOLVED, substatus=None)
 
-        assert len(resolved_groups) == 2
+        self.page.wait_for_issue_removal()
+        groups = self.browser.elements('[data-test-id="event-issue-header"]')
+
+        assert len(groups) == 1
 
     @patch("django.utils.timezone.now")
-    def test_resolve_issues_removal(self, mock_now):
+    def test_resolve_issues_removal_multi_projects(self, mock_now):
         mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
         self.create_issues()
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature("organizations:issue-list-removal-action"):
+
+        with self.feature(["organizations:global-views"]):
             group1 = self.event_a.group
 
             self.page.visit_issue_list(self.org.slug)
             self.page.wait_for_stream()
 
             self.page.select_issue(1)
-            self.page.resolve_issues_removal()
+            self.page.resolve_issues()
 
             group1.update(status=GroupStatus.RESOLVED, substatus=None)
 
@@ -116,56 +119,33 @@ class OrganizationGroupIndexTest(AcceptanceTestCase, SnubaTestCase):
             assert len(groups) == 1
 
     @patch("django.utils.timezone.now")
-    def test_resolve_issues_multi_projects(self, mock_now):
-        mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
-        self.create_issues()
-
-        with self.feature("organizations:global-views"):
-            self.page.visit_issue_list(self.org.slug)
-            self.page.wait_for_stream()
-
-            self.page.select_issue(1)
-            self.page.select_issue(2)
-            self.page.resolve_issues()
-
-            self.page.wait_for_resolved_issue()
-            resolved_groups = self.page.find_resolved_issues()
-
-            assert len(resolved_groups) == 2
-
-    @patch("django.utils.timezone.now")
-    def test_resolve_issues_removal_multi_projects(self, mock_now):
+    def test_ignore_issues(self, mock_now):
         mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
         self.create_issues()
 
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature(
-            ["organizations:global-views", "organizations:issue-list-removal-action"]
-        ):
-            group1 = self.event_a.group
+        group1 = self.event_a.group
 
-            self.page.visit_issue_list(self.org.slug)
-            self.page.wait_for_stream()
+        self.page.visit_issue_list(self.org.slug)
+        self.page.wait_for_stream()
 
-            self.page.select_issue(1)
-            self.page.resolve_issues_removal()
+        self.page.select_issue(1)
+        self.page.ignore_issues()
 
-            group1.update(status=GroupStatus.RESOLVED, substatus=None)
+        group1.update(status=GroupStatus.IGNORED, substatus=None)
 
-            self.page.wait_for_issue_removal()
-            groups = self.browser.elements('[data-test-id="event-issue-header"]')
+        self.page.wait_for_issue_removal()
+        groups = self.browser.elements('[data-test-id="event-issue-header"]')
 
-            assert len(groups) == 1
+        assert len(groups) == 1
 
     @patch("django.utils.timezone.now")
-    def test_ignore_issues(self, mock_now):
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature("organizations:issue-list-removal-action"):
-            mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
-            self.create_issues()
+    def test_ignore_issues_multi_projects(self, mock_now):
+        mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
+        self.create_issues()
 
-            group1 = self.event_a.group
+        group1 = self.event_a.group
 
+        with self.feature("organizations:global-views"):
             self.page.visit_issue_list(self.org.slug)
             self.page.wait_for_stream()
 
@@ -180,37 +160,33 @@ class OrganizationGroupIndexTest(AcceptanceTestCase, SnubaTestCase):
             assert len(groups) == 1
 
     @patch("django.utils.timezone.now")
-    def test_ignore_issues_multi_projects(self, mock_now):
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature("organizations:issue-list-removal-action"):
-            mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
-            self.create_issues()
+    def test_delete_issues(self, mock_now):
+        mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
+        self.create_issues()
 
-            group1 = self.event_a.group
+        group1 = self.event_a.group
 
-            with self.feature("organizations:global-views"):
-                self.page.visit_issue_list(self.org.slug)
-                self.page.wait_for_stream()
+        self.page.visit_issue_list(self.org.slug)
+        self.page.wait_for_stream()
 
-                self.page.select_issue(1)
-                self.page.ignore_issues()
+        self.page.select_issue(1)
+        self.page.delete_issues()
 
-                group1.update(status=GroupStatus.IGNORED, substatus=None)
+        group1.update(status=GroupStatus.PENDING_DELETION, substatus=None)
 
-                self.page.wait_for_issue_removal()
-                groups = self.browser.elements('[data-test-id="event-issue-header"]')
+        self.page.wait_for_issue_removal()
+        groups = self.browser.elements('[data-test-id="event-issue-header"]')
 
-                assert len(groups) == 1
+        assert len(groups) == 1
 
     @patch("django.utils.timezone.now")
-    def test_delete_issues(self, mock_now):
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature("organizations:issue-list-removal-action"):
-            mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
-            self.create_issues()
+    def test_delete_issues_multi_projects(self, mock_now):
+        mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
+        self.create_issues()
 
-            group1 = self.event_a.group
+        group1 = self.event_a.group
 
+        with self.feature("organizations:global-views"):
             self.page.visit_issue_list(self.org.slug)
             self.page.wait_for_stream()
 
@@ -224,53 +200,28 @@ class OrganizationGroupIndexTest(AcceptanceTestCase, SnubaTestCase):
 
             assert len(groups) == 1
 
-    @patch("django.utils.timezone.now")
-    def test_delete_issues_multi_projects(self, mock_now):
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature("organizations:issue-list-removal-action"):
-            mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
-            self.create_issues()
-
-            group1 = self.event_a.group
-
-            with self.feature("organizations:global-views"):
-                self.page.visit_issue_list(self.org.slug)
-                self.page.wait_for_stream()
-
-                self.page.select_issue(1)
-                self.page.delete_issues()
-
-                group1.update(status=GroupStatus.PENDING_DELETION, substatus=None)
-
-                self.page.wait_for_issue_removal()
-                groups = self.browser.elements('[data-test-id="event-issue-header"]')
-
-                assert len(groups) == 1
-
     @patch("django.utils.timezone.now")
     def test_merge_issues(self, mock_now):
-        # TODO(Kelly): update once issue-list-removal-action feature is stable
-        with self.feature("organizations:issue-list-removal-action"):
-            mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
-            self.create_issues()
+        mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
+        self.create_issues()
 
-            group1 = self.event_a.group
-            group2 = self.event_b.group
+        group1 = self.event_a.group
+        group2 = self.event_b.group
 
-            self.page.visit_issue_list(self.org.slug)
-            self.page.wait_for_stream()
+        self.page.visit_issue_list(self.org.slug)
+        self.page.wait_for_stream()
 
-            self.page.select_issue(1)
-            self.page.select_issue(2)
-            self.page.merge_issues()
+        self.page.select_issue(1)
+        self.page.select_issue(2)
+        self.page.merge_issues()
 
-            group1.update(status=GroupStatus.PENDING_MERGE, substatus=None)
-            group2.update(status=GroupStatus.PENDING_MERGE, substatus=None)
+        group1.update(status=GroupStatus.PENDING_MERGE, substatus=None)
+        group2.update(status=GroupStatus.PENDING_MERGE, substatus=None)
 
-            self.page.wait_for_issue_removal()
-            groups = self.browser.elements('[data-test-id="event-issue-header"]')
+        self.page.wait_for_issue_removal()
+        groups = self.browser.elements('[data-test-id="event-issue-header"]')
 
-            assert len(groups) == 1
+        assert len(groups) == 1
 
     @patch("django.utils.timezone.now")
     def test_inbox_results(self, mock_now):