Files
gitlab-foss/spec/support/shared_contexts/navbar_structure_context.rb
2025-07-08 15:11:55 +00:00

324 lines
6.5 KiB
Ruby

# frozen_string_literal: true
RSpec.shared_context 'project navbar structure' do
include NavbarStructureHelper
let(:secure_nav_item) do
{
nav_item: _('Secure'),
nav_sub_items: [
(_('Audit events') if Gitlab.ee?),
_('Security configuration')
]
}
end
let(:structure) do
[
{
nav_item: _('Manage'),
nav_sub_items: [
_('Activity'),
_('Members'),
_('Labels')
]
},
{
nav_item: _('Plan'),
nav_sub_items: [
s_('WorkItem|Work items'),
_('Issue boards'),
_('Milestones'),
_('Wiki')
]
},
if Gitlab.ee?
{
nav_item: _('Automate'),
nav_sub_items: [
_('Agent sessions')
]
}
end,
{
nav_item: _('Code'),
nav_sub_items: [
_('Merge requests'),
_('Repository'),
_('Branches'),
_('Commits'),
_('Tags'),
_('Repository graph'),
_('Compare revisions'),
_('Snippets'),
(_('Locked files') if Gitlab.ee?)
]
},
{
nav_item: _('Build'),
nav_sub_items: [
_('Pipelines'),
_('Jobs'),
_('Pipeline editor'),
_('Pipeline schedules'),
_('Artifacts')
]
},
secure_nav_item,
{
nav_item: _('Deploy'),
nav_sub_items: [
_('Releases'),
s_('FeatureFlags|Feature flags'),
_('Model registry')
]
},
{
nav_item: _('Operate'),
nav_sub_items: [
_('Environments'),
_('Kubernetes clusters'),
s_('Terraform|Terraform states')
]
},
{
nav_item: _('Monitor'),
nav_sub_items: [
_('Error Tracking'),
_('Alerts'),
_('Incidents'),
_('Service Desk')
]
},
{
nav_item: _('Analyze'),
nav_sub_items: project_analytics_sub_nav_item
},
{
nav_item: _('Settings'),
nav_sub_items: [
_('General'),
_('Integrations'),
_('Webhooks'),
_('Access tokens'),
_('Repository'),
_('Merge requests'),
_('CI/CD'),
_('Packages and registries'),
_('Monitor'),
s_('UsageQuota|Usage Quotas')
]
}
].compact
end
# Projects belonging to a group have
# different menu elements
let(:group_owned_structure) do
structure.last[:nav_sub_items] = [
_('General'),
_('Integrations'),
_('Webhooks'),
_('Access tokens'),
_('Repository'),
_('Merge requests'),
_('CI/CD'),
_('Packages and registries'),
_('Monitor'),
_('Analytics'),
s_('UsageQuota|Usage Quotas')
]
structure
end
end
RSpec.shared_context 'group navbar structure' do
let(:analyze_nav_item) do
{
nav_item: _("Analyze"),
nav_sub_items: group_analytics_sub_nav_item
}
end
let(:settings_nav_item) do
{
nav_item: _('Settings'),
nav_sub_items: [
_('General'),
_('Integrations'),
_('Webhooks'),
_('Access tokens'),
_('Repository'),
_('CI/CD'),
_('Applications'),
_('Packages and registries'),
s_('UsageQuota|Usage Quotas'),
_('Domain Verification')
]
}
end
let(:settings_for_maintainer_nav_item) do
{
nav_item: _("Settings"),
nav_sub_items: [_("Repository")]
}
end
let(:secure_nav_item) do
{
nav_item: _("Secure"),
nav_sub_items: [_("Audit events")]
}
end
let(:plan_nav_items) do
[s_("WorkItem|Work items"), _("Issue board"), _("Milestones"), (_('Iterations') if Gitlab.ee?)]
end
let(:customer_relations_nav_item) do
{
nav_item: _('Customer relations'),
nav_sub_items: [
_('Contacts'),
_('Organizations')
]
}
end
let(:observability_nav_item) do
{
nav_item: _("Observability"),
nav_sub_items: [
_("Services"),
_("Traces Explorer"),
_("Logs Explorer"),
_("Metrics Explorer"),
_("Infrastructure Monitoring"),
_("Dashboard"),
_("Messaging Queues"),
_("API Monitoring"),
_("Alerts"),
_("Exceptions"),
_("Service Map"),
_("Settings")
]
}
end
let(:structure) do
[
{
nav_item: _("Manage"),
nav_sub_items: [_("Activity"), _("Members"), _("Labels")]
},
{
nav_item: _("Plan"),
nav_sub_items: plan_nav_items
},
{
nav_item: _("Code"),
nav_sub_items: [_("Merge requests")]
},
{
nav_item: _("Build"),
nav_sub_items: [_("Runners")]
},
(secure_nav_item if Gitlab.ee?),
{
nav_item: _("Operate"),
nav_sub_items: [_("Kubernetes")]
},
(analyze_nav_item if Gitlab.ee?),
observability_nav_item
]
end
end
RSpec.shared_context 'dashboard navbar structure' do
let(:structure) do
[
{
nav_item: _("Projects"),
nav_sub_items: []
},
{
nav_item: _("Groups"),
nav_sub_items: []
},
{
nav_item: _('Organizations'),
nav_sub_items: []
},
{
nav_item: _("Issues"),
nav_sub_items: []
},
{
nav_item: _("Merge requests"),
nav_sub_items: [
_('Assigned'),
_('Review requests')
]
},
{
nav_item: _("To-Do List"),
nav_sub_items: []
},
{
nav_item: _("Milestones"),
nav_sub_items: []
},
{
nav_item: _("Snippets"),
nav_sub_items: []
},
{
nav_item: _("Activity"),
nav_sub_items: []
},
{
nav_item: _("Import history"),
nav_sub_items: []
}
]
end
end
RSpec.shared_context '"Explore" navbar structure' do
let(:structure) do
[
{
nav_item: _("Projects"),
nav_sub_items: []
},
{
nav_item: _("Groups"),
nav_sub_items: []
},
{
nav_item: _("CI/CD Catalog"),
nav_sub_items: []
},
if Gitlab.ee?
{
nav_item: s_("AICatalog|AI Catalog"),
nav_sub_items: []
}
end,
{
nav_item: _("Topics"),
nav_sub_items: []
},
{
nav_item: _("Snippets"),
nav_sub_items: []
}
]
end
end