From 8691fcfaf399f04aeb1daed3ad4ed9d08ccde530 Mon Sep 17 00:00:00 2001 From: Luke Duncalfe Date: Tue, 16 Sep 2025 13:26:07 +1200 Subject: [PATCH] Revert "Merge branch 'ai-catalog-item-consumers-graphql' into 'master'" This reverts merge request !204648 --- doc/api/graphql/reference/_index.md | 32 +++++++++---------- ...ai_catalog_configured_items.query.graphql} | 4 +-- .../ai/duo_agentic_chat/components/app.vue | 2 +- .../pages/agents/ai_agents.vue | 10 +++--- .../pages/flows/ai_flows.vue | 10 +++--- .../get_configured_agents.query.graphql | 2 +- ee/app/graphql/ee/types/query_type.rb | 4 +-- ...solver.rb => configured_items_resolver.rb} | 2 +- ee/spec/frontend/ai/catalog/mock_data.js | 8 ++--- .../duo_agentic_chat/components/app_spec.js | 4 +-- .../pages/agents/ai_agents_spec.js | 8 ++--- .../pages/flows/ai_flows_spec.js | 8 ++--- ...c.rb => configured_items_resolver_spec.rb} | 2 +- ee/spec/graphql/types/query_type_spec.rb | 2 +- ...c.rb => configured_items_resolver_spec.rb} | 22 ++++++------- 15 files changed, 60 insertions(+), 60 deletions(-) rename ee/app/assets/javascripts/ai/catalog/graphql/queries/{ai_catalog_item_consumers.query.graphql => ai_catalog_configured_items.query.graphql} (88%) rename ee/app/graphql/resolvers/ai/catalog/{item_consumers_resolver.rb => configured_items_resolver.rb} (97%) rename ee/spec/graphql/resolvers/ai/catalog/{item_consumers_resolver_spec.rb => configured_items_resolver_spec.rb} (73%) rename ee/spec/requests/api/graphql/ai/catalog/{item_consumers_resolver_spec.rb => configured_items_resolver_spec.rb} (80%) diff --git a/doc/api/graphql/reference/_index.md b/doc/api/graphql/reference/_index.md index ea0179131c46fb..49097d31e830b0 100644 --- a/doc/api/graphql/reference/_index.md +++ b/doc/api/graphql/reference/_index.md @@ -256,47 +256,47 @@ This field returns a [connection](#connections). It accepts the four standard [pagination arguments](#pagination-arguments): `before: String`, `after: String`, `first: Int`, and `last: Int`. -### `Query.aiCatalogItem` +### `Query.aiCatalogConfiguredItems` {{< details >}} **Introduced** in GitLab 18.2. **Status**: Experiment. {{< /details >}} -Find an AI Catalog item. +AI Catalog items configured for use. -Returns [`AiCatalogItem`](#aicatalogitem). +Returns [`AiCatalogItemConsumerConnection!`](#aicatalogitemconsumerconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#pagination-arguments): +`before: String`, `after: String`, `first: Int`, and `last: Int`. #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`AiCatalogItemID!`](#aicatalogitemid) | Global ID of the catalog item to find. | +| `groupId` | [`GroupID`](#groupid) | Group ID to retrieve configured AI Catalog items for. | +| `includeInherited` | [`Boolean`](#boolean) | Include configured AI Catalog items inherited from parent groups. | +| `itemId` | [`AiCatalogItemID`](#aicatalogitemid) | Item ID to retrieve configured AI Catalog items for. | +| `itemType` | [`AiCatalogItemType`](#aicatalogitemtype) | Type of items to retrieve. | +| `projectId` | [`ProjectID`](#projectid) | Project ID to retrieve configured AI Catalog items for. | -### `Query.aiCatalogItemConsumers` +### `Query.aiCatalogItem` {{< details >}} **Introduced** in GitLab 18.2. **Status**: Experiment. {{< /details >}} -AI Catalog items configured for use. - -Returns [`AiCatalogItemConsumerConnection!`](#aicatalogitemconsumerconnection). +Find an AI Catalog item. -This field returns a [connection](#connections). It accepts the -four standard [pagination arguments](#pagination-arguments): -`before: String`, `after: String`, `first: Int`, and `last: Int`. +Returns [`AiCatalogItem`](#aicatalogitem). #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `groupId` | [`GroupID`](#groupid) | Group ID to retrieve configured AI Catalog items for. | -| `includeInherited` | [`Boolean`](#boolean) | Include configured AI Catalog items inherited from parent groups. | -| `itemId` | [`AiCatalogItemID`](#aicatalogitemid) | Item ID to retrieve configured AI Catalog items for. | -| `itemType` | [`AiCatalogItemType`](#aicatalogitemtype) | Type of items to retrieve. | -| `projectId` | [`ProjectID`](#projectid) | Project ID to retrieve configured AI Catalog items for. | +| `id` | [`AiCatalogItemID!`](#aicatalogitemid) | Global ID of the catalog item to find. | ### `Query.aiCatalogItems` diff --git a/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql b/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql similarity index 88% rename from ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql rename to ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql index aff1e4c5652593..dad71ab432f112 100644 --- a/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql +++ b/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql @@ -1,7 +1,7 @@ #import "~/graphql_shared/fragments/page_info.fragment.graphql" #import "../fragments/ai_catalog_item_consumer.fragment.graphql" -query aiCatalogItemConsumers( +query aiCatalogConfiguredItems( $itemType: AiCatalogItemType $projectId: ProjectID! $before: String @@ -9,7 +9,7 @@ query aiCatalogItemConsumers( $first: Int $last: Int ) { - aiCatalogItemConsumers( + aiCatalogConfiguredItems( itemType: $itemType projectId: $projectId before: $before diff --git a/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue b/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue index 3f6e0da8bebe19..082c2b360ad3dd 100644 --- a/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue +++ b/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue @@ -165,7 +165,7 @@ export default { }; }, update(data) { - return (data?.aiCatalogItemConsumers.nodes || []).map((agent) => agent.item); + return (data?.aiCatalogConfiguredItems.nodes || []).map((agent) => agent.item); }, error(err) { this.onError(err); diff --git a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue index 685c54c5763d57..593e8a3c18d26f 100644 --- a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue +++ b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue @@ -10,7 +10,7 @@ import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import AiCatalogItemDrawer from 'ee/ai/catalog/components/ai_catalog_item_drawer.vue'; -import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; +import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; import aiCatalogAgentQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_agent.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { AI_CATALOG_TYPE_AGENT, PAGE_SIZE } from 'ee/ai/catalog/constants'; @@ -41,7 +41,7 @@ export default { }, apollo: { aiAgents: { - query: aiCatalogItemConsumersQuery, + query: aiCatalogConfiguredItemsQuery, variables() { return { itemType: AI_CATALOG_TYPE_AGENT, @@ -53,9 +53,9 @@ export default { }; }, fetchPolicy: fetchPolicies.CACHE_AND_NETWORK, - update: (data) => data.aiCatalogItemConsumers.nodes, + update: (data) => data.aiCatalogConfiguredItems.nodes, result({ data }) { - this.pageInfo = data.aiCatalogItemConsumers.pageInfo; + this.pageInfo = data.aiCatalogConfiguredItems.pageInfo; }, }, aiCatalogAgent: { @@ -151,7 +151,7 @@ export default { variables: { id, }, - refetchQueries: [aiCatalogItemConsumersQuery], + refetchQueries: [aiCatalogConfiguredItemsQuery], }); if (!data.aiCatalogItemConsumerDelete.success) { diff --git a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue index b73db90f942eb1..26c3f90862c87a 100644 --- a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue +++ b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue @@ -11,7 +11,7 @@ import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import AiCatalogItemDrawer from 'ee/ai/catalog/components/ai_catalog_item_drawer.vue'; -import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; +import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; import aiCatalogFlowQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_flow.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { AI_CATALOG_TYPE_FLOW, PAGE_SIZE } from 'ee/ai/catalog/constants'; @@ -43,7 +43,7 @@ export default { }, apollo: { aiFlows: { - query: aiCatalogItemConsumersQuery, + query: aiCatalogConfiguredItemsQuery, variables() { return { itemType: AI_CATALOG_TYPE_FLOW, @@ -55,9 +55,9 @@ export default { }; }, fetchPolicy: fetchPolicies.CACHE_AND_NETWORK, - update: (data) => data.aiCatalogItemConsumers.nodes, + update: (data) => data.aiCatalogConfiguredItems.nodes, result({ data }) { - this.pageInfo = data.aiCatalogItemConsumers.pageInfo; + this.pageInfo = data.aiCatalogConfiguredItems.pageInfo; }, }, aiCatalogFlow: { @@ -168,7 +168,7 @@ export default { variables: { id, }, - refetchQueries: [aiCatalogItemConsumersQuery], + refetchQueries: [aiCatalogConfiguredItemsQuery], }); if (!data.aiCatalogItemConsumerDelete.success) { diff --git a/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql b/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql index 5e5b80182915cb..5bcdcd63d0c01a 100644 --- a/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql +++ b/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql @@ -1,5 +1,5 @@ query getConfiguredAgents($projectId: ProjectID, $groupId: GroupID) { - aiCatalogItemConsumers(projectId: $projectId, groupId: $groupId, itemType: AGENT) { + aiCatalogConfiguredItems(projectId: $projectId, groupId: $groupId, itemType: AGENT) { nodes { id item { diff --git a/ee/app/graphql/ee/types/query_type.rb b/ee/app/graphql/ee/types/query_type.rb index 6c047a64b781bc..e476821f79f4f2 100644 --- a/ee/app/graphql/ee/types/query_type.rb +++ b/ee/app/graphql/ee/types/query_type.rb @@ -69,8 +69,8 @@ module QueryType required: false, description: 'Runner ID to retrieve data for.' end - field :ai_catalog_item_consumers, - resolver: ::Resolvers::Ai::Catalog::ItemConsumersResolver, + field :ai_catalog_configured_items, + resolver: ::Resolvers::Ai::Catalog::ConfiguredItemsResolver, null: false, description: 'AI Catalog items configured for use.', experiment: { milestone: '18.2' } diff --git a/ee/app/graphql/resolvers/ai/catalog/item_consumers_resolver.rb b/ee/app/graphql/resolvers/ai/catalog/configured_items_resolver.rb similarity index 97% rename from ee/app/graphql/resolvers/ai/catalog/item_consumers_resolver.rb rename to ee/app/graphql/resolvers/ai/catalog/configured_items_resolver.rb index 65c85f09fa300a..a270d4f9199dc0 100644 --- a/ee/app/graphql/resolvers/ai/catalog/item_consumers_resolver.rb +++ b/ee/app/graphql/resolvers/ai/catalog/configured_items_resolver.rb @@ -3,7 +3,7 @@ module Resolvers module Ai module Catalog - class ItemConsumersResolver < BaseResolver + class ConfiguredItemsResolver < BaseResolver description 'Find AI Catalog items configured for use.' type ::Types::Ai::Catalog::ItemConsumerType.connection_type, null: false diff --git a/ee/spec/frontend/ai/catalog/mock_data.js b/ee/spec/frontend/ai/catalog/mock_data.js index 0f8af9c4584585..51ffe2cffc95a6 100644 --- a/ee/spec/frontend/ai/catalog/mock_data.js +++ b/ee/spec/frontend/ai/catalog/mock_data.js @@ -452,7 +452,7 @@ export const mockBaseItemConsumer = { export const mockConfiguredAgentsResponse = { data: { - aiCatalogItemConsumers: { + aiCatalogConfiguredItems: { nodes: [ { ...mockBaseItemConsumer, @@ -467,7 +467,7 @@ export const mockConfiguredAgentsResponse = { export const mockConfiguredFlowsResponse = { data: { - aiCatalogItemConsumers: { + aiCatalogConfiguredItems: { nodes: [ { ...mockBaseItemConsumer, @@ -480,9 +480,9 @@ export const mockConfiguredFlowsResponse = { }, }; -export const mockItemConsumersEmptyResponse = { +export const mockConfiguredItemsEmptyResponse = { data: { - aiCatalogItemConsumers: { + aiCatalogConfiguredItems: { nodes: [], pageInfo: { hasNextPage: false, diff --git a/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js b/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js index 8662c826751a54..d3262a9a7a5047 100644 --- a/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js +++ b/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js @@ -123,7 +123,7 @@ const MOCK_USER_WORKFLOWS_RESPONSE = { const MOCK_CONFIGURED_AGENTS_RESPONSE = { data: { - aiCatalogItemConsumers: { + aiCatalogConfiguredItems: { nodes: [ { id: 'Configured Item 5', @@ -1509,7 +1509,7 @@ describe('Duo Agentic Chat', () => { duoChatGlobalState.isAgenticChatShown = true; createComponent(); const agentResponse = - MOCK_CONFIGURED_AGENTS_RESPONSE.data.aiCatalogItemConsumers.nodes[0].item; + MOCK_CONFIGURED_AGENTS_RESPONSE.data.aiCatalogConfiguredItems.nodes[0].item; agent = { ...agentResponse, text: agentResponse.name }; flowConfig = 'YAML string'; ApolloUtils.getAgentFlowConfig.mockResolvedValue(flowConfig); diff --git a/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js b/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js index 1807cc30213147..e6dcd8c6256dd5 100644 --- a/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js +++ b/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js @@ -10,7 +10,7 @@ import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import ErrorsAlert from '~/vue_shared/components/errors_alert.vue'; import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; -import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; +import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; import aiCatalogAgentQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_agent.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { @@ -18,7 +18,7 @@ import { mockBaseAgent, mockBaseItemConsumer, mockConfiguredAgentsResponse, - mockItemConsumersEmptyResponse, + mockConfiguredItemsEmptyResponse, mockAiCatalogItemConsumerDeleteResponse, mockAiCatalogItemConsumerDeleteErrorResponse, mockPageInfo, @@ -49,7 +49,7 @@ describe('AiAgents', () => { const createComponent = ({ $route = { query: {} } } = {}) => { mockApollo = createMockApollo([ - [aiCatalogItemConsumersQuery, mockConfiguredAgentsQueryHandler], + [aiCatalogConfiguredItemsQuery, mockConfiguredAgentsQueryHandler], [aiCatalogAgentQuery, mockAgentQueryHandler], [deleteAiCatalogItemConsumer, deleteItemConsumerMutationHandler], ]); @@ -98,7 +98,7 @@ describe('AiAgents', () => { describe('when there are no agents', () => { beforeEach(async () => { - mockConfiguredAgentsQueryHandler.mockResolvedValueOnce(mockItemConsumersEmptyResponse); + mockConfiguredAgentsQueryHandler.mockResolvedValueOnce(mockConfiguredItemsEmptyResponse); await waitForPromises(); }); diff --git a/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js b/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js index 66b56cacd35f34..d9a50227eb2def 100644 --- a/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js +++ b/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js @@ -10,7 +10,7 @@ import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import ErrorsAlert from '~/vue_shared/components/errors_alert.vue'; import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; -import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; +import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; import aiCatalogFlowQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_flow.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { @@ -18,7 +18,7 @@ import { mockBaseFlow, mockBaseItemConsumer, mockConfiguredFlowsResponse, - mockItemConsumersEmptyResponse, + mockConfiguredItemsEmptyResponse, mockAiCatalogItemConsumerDeleteResponse, mockAiCatalogItemConsumerDeleteErrorResponse, mockPageInfo, @@ -47,7 +47,7 @@ describe('AiFlows', () => { const createComponent = ({ $route = { query: {} } } = {}) => { mockApollo = createMockApollo([ - [aiCatalogItemConsumersQuery, mockConfiguredFlowsQueryHandler], + [aiCatalogConfiguredItemsQuery, mockConfiguredFlowsQueryHandler], [aiCatalogFlowQuery, mockFlowQueryHandler], [deleteAiCatalogItemConsumer, deleteItemConsumerMutationHandler], ]); @@ -96,7 +96,7 @@ describe('AiFlows', () => { describe('when there are no flows', () => { beforeEach(async () => { - mockConfiguredFlowsQueryHandler.mockResolvedValueOnce(mockItemConsumersEmptyResponse); + mockConfiguredFlowsQueryHandler.mockResolvedValueOnce(mockConfiguredItemsEmptyResponse); await waitForPromises(); }); diff --git a/ee/spec/graphql/resolvers/ai/catalog/item_consumers_resolver_spec.rb b/ee/spec/graphql/resolvers/ai/catalog/configured_items_resolver_spec.rb similarity index 73% rename from ee/spec/graphql/resolvers/ai/catalog/item_consumers_resolver_spec.rb rename to ee/spec/graphql/resolvers/ai/catalog/configured_items_resolver_spec.rb index 39a80f60b554d3..a8040e8dc0f54f 100644 --- a/ee/spec/graphql/resolvers/ai/catalog/item_consumers_resolver_spec.rb +++ b/ee/spec/graphql/resolvers/ai/catalog/configured_items_resolver_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Resolvers::Ai::Catalog::ItemConsumersResolver, feature_category: :workflow_catalog do +RSpec.describe Resolvers::Ai::Catalog::ConfiguredItemsResolver, feature_category: :workflow_catalog do subject(:resolver) { described_class } it 'has expected arguments' do diff --git a/ee/spec/graphql/types/query_type_spec.rb b/ee/spec/graphql/types/query_type_spec.rb index 4958f1235768dd..912b4e4f826186 100644 --- a/ee/spec/graphql/types/query_type_spec.rb +++ b/ee/spec/graphql/types/query_type_spec.rb @@ -10,7 +10,7 @@ :add_on_purchases, :ai_catalog_agent_flow_config, :ai_catalog_built_in_tools, - :ai_catalog_item_consumers, + :ai_catalog_configured_items, :ai_catalog_item, :ai_catalog_items, :ai_messages, diff --git a/ee/spec/requests/api/graphql/ai/catalog/item_consumers_resolver_spec.rb b/ee/spec/requests/api/graphql/ai/catalog/configured_items_resolver_spec.rb similarity index 80% rename from ee/spec/requests/api/graphql/ai/catalog/item_consumers_resolver_spec.rb rename to ee/spec/requests/api/graphql/ai/catalog/configured_items_resolver_spec.rb index 15cebbf0aa31d9..182ef6377b3530 100644 --- a/ee/spec/requests/api/graphql/ai/catalog/item_consumers_resolver_spec.rb +++ b/ee/spec/requests/api/graphql/ai/catalog/configured_items_resolver_spec.rb @@ -10,47 +10,47 @@ let_it_be(:catalog_agents) { create_list(:ai_catalog_agent, 2) } let_it_be(:catalog_flows) { create_list(:ai_catalog_flow, 2) } let_it_be(:catalog_items) { [*catalog_agents, *catalog_flows] } - let_it_be(:agent_consumers) do + let_it_be(:configured_agents) do catalog_agents.map { |item| create(:ai_catalog_item_consumer, project: project, item: item) } end - let_it_be(:flow_consumers) do + let_it_be(:configured_flows) do catalog_flows.map { |item| create(:ai_catalog_item_consumer, project: project, item: item) } end - let_it_be(:consumers) do - [*agent_consumers, *flow_consumers] + let_it_be(:configured_items) do + [*configured_agents, *configured_flows] end let(:current_user) { developer } let(:project_gid) { project.to_global_id } - let(:nodes) { graphql_data_at(:ai_catalog_item_consumers, :nodes) } + let(:nodes) { graphql_data_at(:ai_catalog_configured_items, :nodes) } let(:args) { { projectId: project_gid } } let(:query) do - "{ #{query_nodes('aiCatalogItemConsumers', of: 'AiCatalogItemConsumer', max_depth: 3, args: args)} }" + "{ #{query_nodes('aiCatalogConfiguredItems', of: 'AiCatalogItemConsumer', max_depth: 3, args: args)} }" end it 'returns configured AI catalog items' do post_graphql(query, current_user: current_user) expect(response).to have_gitlab_http_status(:success) - expect(nodes).to match_array(consumers.map { |configured_item| a_graphql_entity_for(configured_item) }) + expect(nodes).to match_array(configured_items.map { |configured_item| a_graphql_entity_for(configured_item) }) end context 'when filtering by group and item' do let_it_be(:group) { create(:group, developers: developer) } - let_it_be(:consumers) do + let_it_be(:configured_items) do catalog_items.map { |item| create(:ai_catalog_item_consumer, group: group, item: item) } end - let(:args) { { groupId: group.to_global_id, itemId: consumers[0].item.to_global_id } } + let(:args) { { groupId: group.to_global_id, itemId: configured_items[0].item.to_global_id } } it 'returns configured AI catalog items' do post_graphql(query, current_user: current_user) expect(response).to have_gitlab_http_status(:success) - expect(nodes).to contain_exactly(a_graphql_entity_for(consumers[0])) + expect(nodes).to contain_exactly(a_graphql_entity_for(configured_items[0])) end end @@ -95,7 +95,7 @@ post_graphql(query, current_user: current_user) expect(response).to have_gitlab_http_status(:success) - expect(nodes).to match_array(flow_consumers.map { |flow| a_graphql_entity_for(flow) }) + expect(nodes).to match_array(configured_flows.map { |flow| a_graphql_entity_for(flow) }) end end -- GitLab