From 66c9258a0882670bdccdb3675d60d6bc16fa5467 Mon Sep 17 00:00:00 2001 From: GitLab Duo Date: Fri, 5 Sep 2025 06:45:51 +0000 Subject: [PATCH] Duo Workflow: Resolve issue #566212 --- .../graphql/group_work_items.query.graphql | 3 +++ .../list/get_work_items_full.query.graphql | 2 ++ .../list/get_work_items_slim.query.graphql | 2 ++ .../work_items/pages/work_items_list_app.vue | 1 + .../list/get_work_items_full.query.graphql | 2 ++ .../list/get_work_items_slim.query.graphql | 2 ++ .../components/work_items_list_app_spec.js | 19 +++++++++++++++++++ 7 files changed, 31 insertions(+) diff --git a/app/assets/javascripts/work_items/graphql/group_work_items.query.graphql b/app/assets/javascripts/work_items/graphql/group_work_items.query.graphql index 9e4500c03aabff..fb07c4f118b5f0 100644 --- a/app/assets/javascripts/work_items/graphql/group_work_items.query.graphql +++ b/app/assets/javascripts/work_items/graphql/group_work_items.query.graphql @@ -5,6 +5,7 @@ query groupWorkItems( $in: [IssuableSearchableField!] $includeAncestors: Boolean = false $includeDescendants: Boolean = false + $excludeGroupWorkItems: Boolean = false $iid: String = null $searchByIid: Boolean = false $searchByText: Boolean = true @@ -18,6 +19,7 @@ query groupWorkItems( in: $in includeAncestors: $includeAncestors includeDescendants: $includeDescendants + excludeGroupWorkItems: $excludeGroupWorkItems ) @include(if: $searchByText) { nodes { id @@ -53,6 +55,7 @@ query groupWorkItems( types: $types includeAncestors: $includeAncestors includeDescendants: $includeDescendants + excludeGroupWorkItems: $excludeGroupWorkItems ) @include(if: $searchByIid) { nodes { id diff --git a/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql b/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql index b9174c617aef22..f65eed7e92b5e7 100644 --- a/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql +++ b/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql @@ -3,6 +3,7 @@ query getWorkItemsFull( $excludeProjects: Boolean = false + $excludeGroupWorkItems: Boolean = false $includeDescendants: Boolean = true $fullPath: ID! $search: String @@ -44,6 +45,7 @@ query getWorkItemsFull( name workItems( excludeProjects: $excludeProjects + excludeGroupWorkItems: $excludeGroupWorkItems includeDescendants: $includeDescendants search: $search sort: $sort diff --git a/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql b/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql index 592a9b0af03f94..fda3708bee7eeb 100644 --- a/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql +++ b/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql @@ -4,6 +4,7 @@ query getWorkItemsSlim( $excludeProjects: Boolean = false + $excludeGroupWorkItems: Boolean = false $includeDescendants: Boolean = true $fullPath: ID! $search: String @@ -45,6 +46,7 @@ query getWorkItemsSlim( name workItems( excludeProjects: $excludeProjects + excludeGroupWorkItems: $excludeGroupWorkItems includeDescendants: $includeDescendants search: $search sort: $sort diff --git a/app/assets/javascripts/work_items/pages/work_items_list_app.vue b/app/assets/javascripts/work_items/pages/work_items_list_app.vue index ead29041250d7f..cdbc1d6d175f53 100644 --- a/app/assets/javascripts/work_items/pages/work_items_list_app.vue +++ b/app/assets/javascripts/work_items/pages/work_items_list_app.vue @@ -463,6 +463,7 @@ export default { ...this.pageParams, search: this.searchQuery, excludeProjects: hasGroupFilter || this.isEpicsList, + excludeGroupWorkItems: this.isGroup && this.isGroupIssuesList, includeDescendants: !hasGroupFilter, types: this.apiFilterParams.types || singleWorkItemType || this.defaultWorkItemTypes, isGroup: this.isGroup, diff --git a/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql b/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql index ceb6a0888b9da5..d2fb526a363ced 100644 --- a/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql +++ b/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_full.query.graphql @@ -3,6 +3,7 @@ query getWorkItemsFullEE( $excludeProjects: Boolean = false + $excludeGroupWorkItems: Boolean = false $includeDescendants: Boolean = true $fullPath: ID! $search: String @@ -52,6 +53,7 @@ query getWorkItemsFullEE( name workItems( excludeProjects: $excludeProjects + excludeGroupWorkItems: $excludeGroupWorkItems includeDescendants: $includeDescendants search: $search sort: $sort diff --git a/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql b/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql index 1b77d70bf5634d..7d8ecfb3c70187 100644 --- a/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql +++ b/ee/app/assets/javascripts/work_items/graphql/list/get_work_items_slim.query.graphql @@ -4,6 +4,7 @@ query getWorkItemsSlimEE( $excludeProjects: Boolean = false + $excludeGroupWorkItems: Boolean = false $includeDescendants: Boolean = true $fullPath: ID! $search: String @@ -53,6 +54,7 @@ query getWorkItemsSlimEE( name workItems( excludeProjects: $excludeProjects + excludeGroupWorkItems: $excludeGroupWorkItems includeDescendants: $includeDescendants search: $search sort: $sort diff --git a/spec/frontend/work_items/list/components/work_items_list_app_spec.js b/spec/frontend/work_items/list/components/work_items_list_app_spec.js index ff3652439da4a7..1615769d0ed197 100644 --- a/spec/frontend/work_items/list/components/work_items_list_app_spec.js +++ b/spec/frontend/work_items/list/components/work_items_list_app_spec.js @@ -328,6 +328,7 @@ describeSkipVue3(skipReason, () => { expect(defaultQueryHandler).toHaveBeenCalledWith( expect.objectContaining({ excludeProjects: false, + excludeGroupWorkItems: false, }), ); }); @@ -492,6 +493,22 @@ describeSkipVue3(skipReason, () => { expect(defaultQueryHandler).toHaveBeenCalledWith( expect.objectContaining({ excludeProjects: true, + excludeGroupWorkItems: false, + }), + ); + }); + }); + + describe('when isGroupIssuesList is true', () => { + it('sends excludeGroupWorkItems variable as true in GraphQL query', async () => { + mountComponent({ provide: { isGroup: true, isGroupIssuesList: true } }); + + await waitForPromises(); + + expect(defaultQueryHandler).toHaveBeenCalledWith( + expect.objectContaining({ + excludeProjects: false, + excludeGroupWorkItems: true, }), ); }); @@ -1416,6 +1433,7 @@ describeSkipVue3(skipReason, () => { expect(defaultQueryHandler).toHaveBeenCalledWith( expect.objectContaining({ excludeProjects: true, + excludeGroupWorkItems: false, includeDescendants: false, }), ); @@ -1435,6 +1453,7 @@ describeSkipVue3(skipReason, () => { expect(defaultQueryHandler).toHaveBeenCalledWith( expect.objectContaining({ excludeProjects: false, + excludeGroupWorkItems: false, includeDescendants: true, }), ); -- GitLab