From 839fa7beab04e9d9544b1260082857d413e6fc0c Mon Sep 17 00:00:00 2001
From: Nick Leonard <nleonard@gitlab.com>
Date: Wed, 3 Apr 2024 09:04:14 -0500
Subject: [PATCH 1/2] Move epic type filter to FF

Changelog: fixed
EE: true
---
 app/controllers/groups_controller.rb                            | 1 +
 .../javascripts/issues/list/components/issues_list_app.vue      | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 251abcc6d84eda..cadbcbfa3020dd 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -41,6 +41,7 @@ class GroupsController < Groups::ApplicationController
     push_force_frontend_feature_flag(:work_items_beta, group.work_items_beta_feature_flag_enabled?)
     push_force_frontend_feature_flag(:work_items_mvc_2, group.work_items_mvc_2_feature_flag_enabled?)
     push_force_frontend_feature_flag(:linked_work_items, group.linked_work_items_feature_flag_enabled?)
+    push_frontend_feature_flag(:namespace_level_work_items, group)
     push_frontend_feature_flag(:issues_grid_view)
     push_frontend_feature_flag(:group_multi_select_tokens, group)
   end
diff --git a/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue b/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue
index 475dd8a4de4d5c..08f804ed36893d 100644
--- a/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue
+++ b/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue
@@ -80,7 +80,7 @@ export default {
     },
     typeTokenOptions() {
       const typeTokens = [];
-      if (this.hasEpicsFeature && !this.isProject) {
+      if (this.hasEpicsFeature && !this.isProject && this.glFeatures.namespaceLevelWorkItems) {
         typeTokens.push(TYPE_TOKEN_EPIC_OPTION);
       }
       if (this.isOkrsEnabled) {
-- 
GitLab


From c9f8d39634830ad85ff1dc6537a65166995f20d7 Mon Sep 17 00:00:00 2001
From: Nick Leonard <nleonard@gitlab.com>
Date: Mon, 8 Apr 2024 10:34:12 -0500
Subject: [PATCH 2/2] Move to workItemsMvc2

---
 app/controllers/groups_controller.rb            |  1 -
 .../issues/list/components/issues_list_app.vue  |  2 +-
 .../list/components/issues_list_app_spec.js     | 17 ++++++++++-------
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index cadbcbfa3020dd..251abcc6d84eda 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -41,7 +41,6 @@ class GroupsController < Groups::ApplicationController
     push_force_frontend_feature_flag(:work_items_beta, group.work_items_beta_feature_flag_enabled?)
     push_force_frontend_feature_flag(:work_items_mvc_2, group.work_items_mvc_2_feature_flag_enabled?)
     push_force_frontend_feature_flag(:linked_work_items, group.linked_work_items_feature_flag_enabled?)
-    push_frontend_feature_flag(:namespace_level_work_items, group)
     push_frontend_feature_flag(:issues_grid_view)
     push_frontend_feature_flag(:group_multi_select_tokens, group)
   end
diff --git a/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue b/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue
index 08f804ed36893d..1bf3e58bc55072 100644
--- a/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue
+++ b/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue
@@ -80,7 +80,7 @@ export default {
     },
     typeTokenOptions() {
       const typeTokens = [];
-      if (this.hasEpicsFeature && !this.isProject && this.glFeatures.namespaceLevelWorkItems) {
+      if (this.hasEpicsFeature && !this.isProject && this.glFeatures.workItemsMvc2) {
         typeTokens.push(TYPE_TOKEN_EPIC_OPTION);
       }
       if (this.isOkrsEnabled) {
diff --git a/ee/spec/frontend/issues/list/components/issues_list_app_spec.js b/ee/spec/frontend/issues/list/components/issues_list_app_spec.js
index ada741b86d9d9c..195df8fe2c5b3b 100644
--- a/ee/spec/frontend/issues/list/components/issues_list_app_spec.js
+++ b/ee/spec/frontend/issues/list/components/issues_list_app_spec.js
@@ -102,6 +102,7 @@ describe('EE IssuesListApp component', () => {
   const mountComponent = ({
     provide = {},
     okrsMvc = false,
+    workItemsMvc2 = false,
     issuesQueryResponse = jest.fn().mockResolvedValue(defaultQueryResponse),
     issuesCountsQueryResponse = jest.fn().mockResolvedValue(getIssuesCountsQueryResponse),
   } = {}) => {
@@ -113,6 +114,7 @@ describe('EE IssuesListApp component', () => {
       provide: {
         glFeatures: {
           okrsMvc,
+          workItemsMvc2,
         },
         ...defaultProvide,
         ...provide,
@@ -179,15 +181,16 @@ describe('EE IssuesListApp component', () => {
 
   describe('typeTokenOptions', () => {
     describe.each`
-      hasEpicsFeature | isProject | eeWorkItemTypeTokens        | message
-      ${false}        | ${true}   | ${[]}                       | ${'NOT include'}
-      ${true}         | ${true}   | ${[]}                       | ${'NOT include'}
-      ${true}         | ${false}  | ${[TYPE_TOKEN_EPIC_OPTION]} | ${'include'}
+      hasEpicsFeature | isProject | workItemsMvc2 | eeWorkItemTypeTokens        | message
+      ${false}        | ${true}   | ${false}      | ${[]}                       | ${'NOT include'}
+      ${true}         | ${true}   | ${false}      | ${[]}                       | ${'NOT include'}
+      ${true}         | ${false}  | ${false}      | ${[]}                       | ${'NOT include'}
+      ${true}         | ${false}  | ${true}       | ${[TYPE_TOKEN_EPIC_OPTION]} | ${'include'}
     `(
-      'when hasEpicsFeature is "$hasEpicsFeature" and isProject is "$isProject"',
-      ({ hasEpicsFeature, isProject, eeWorkItemTypeTokens, message }) => {
+      'when hasEpicsFeature is "$hasEpicsFeature" and isProject is "$isProject" and workItemsMvc2 is "$workItemsMvc2"',
+      ({ hasEpicsFeature, isProject, workItemsMvc2, eeWorkItemTypeTokens, message }) => {
         beforeEach(() => {
-          wrapper = mountComponent({ provide: { hasEpicsFeature, isProject } });
+          wrapper = mountComponent({ provide: { hasEpicsFeature, isProject }, workItemsMvc2 });
         });
 
         it(`should ${message} epic in type tokens`, () => {
-- 
GitLab