From 9883bb3058a96ea0167d5f8956881cd1a0c18680 Mon Sep 17 00:00:00 2001 From: Zachary Cuddy <zcuddy@gitlab.com> Date: Tue, 21 Mar 2023 10:02:46 -0500 Subject: [PATCH 1/5] Groups - README This change adds an optional README for Groups that will be displayed on the Group Overview. --- .../javascripts/groups/init_group_readme.js | 26 ++++++ .../javascripts/pages/groups/show/index.js | 10 +++ app/helpers/groups_helper.rb | 9 +++ app/views/groups/_group_readme.html.haml | 3 + app/views/groups/show.html.haml | 2 + spec/features/groups_spec.rb | 80 +++++++++++++++++++ 6 files changed, 130 insertions(+) create mode 100644 app/assets/javascripts/groups/init_group_readme.js create mode 100644 app/views/groups/_group_readme.html.haml diff --git a/app/assets/javascripts/groups/init_group_readme.js b/app/assets/javascripts/groups/init_group_readme.js new file mode 100644 index 0000000000000000..d3cc3247c8dc9143 --- /dev/null +++ b/app/assets/javascripts/groups/init_group_readme.js @@ -0,0 +1,26 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import apolloProvider from '~/repository/graphql'; +import FilePreview from '~/repository/components/preview/index.vue'; + +Vue.use(VueApollo); + +export const initGroupReadme = () => { + const el = document.getElementById('js-group-readme'); + + if (!el) return false; + + const blob = (({ webPath, name }) => ({ webPath, name }))(el.dataset); + + return new Vue({ + el, + apolloProvider, + render(createElement) { + return createElement(FilePreview, { + props: { + blob, + }, + }); + }, + }); +}; diff --git a/app/assets/javascripts/pages/groups/show/index.js b/app/assets/javascripts/pages/groups/show/index.js index 53bceb3a6f0ed4a6..d3013eb7ff4cf562 100644 --- a/app/assets/javascripts/pages/groups/show/index.js +++ b/app/assets/javascripts/pages/groups/show/index.js @@ -7,3 +7,13 @@ leaveByUrl('group'); initGroupDetails(); initGroupOverviewTabs(); initReadMore(); + +if (window.gon.features?.showGroupReadme) { + import('~/groups/init_group_readme') + .then(({ initGroupReadme }) => { + initGroupReadme(); + }) + .catch(() => { + // Fail silently + }); +} diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb index ce64ac1f21f7567a..1ed513c7dd02178e 100644 --- a/app/helpers/groups_helper.rb +++ b/app/helpers/groups_helper.rb @@ -168,6 +168,15 @@ def group_overview_tabs_app_data(group) } end + def group_readme_app_data(group) + blob = group.group_readme&.present + + { + web_path: blob.web_path, + name: blob.name + } + end + def enabled_git_access_protocol_options_for_group case ::Gitlab::CurrentSettings.enabled_git_access_protocol when nil, "" diff --git a/app/views/groups/_group_readme.html.haml b/app/views/groups/_group_readme.html.haml new file mode 100644 index 0000000000000000..1a2c9f5891f57e4b --- /dev/null +++ b/app/views/groups/_group_readme.html.haml @@ -0,0 +1,3 @@ +- return unless Feature.enabled?(:show_group_readme, @group) && @group.group_readme + +#js-group-readme{ data: group_readme_app_data(@group) } diff --git a/app/views/groups/show.html.haml b/app/views/groups/show.html.haml index 92b5b84301949ba2..370a03ca301330ba 100644 --- a/app/views/groups/show.html.haml +++ b/app/views/groups/show.html.haml @@ -28,3 +28,5 @@ = render_if_exists 'groups/group_activity_analytics', group: @group #js-group-overview-tabs{ data: group_overview_tabs_app_data(@group) } + += render 'groups/group_readme' diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb index 8806d1c221917f2f..c9a8e8c981b364ef 100644 --- a/spec/features/groups_spec.rb +++ b/spec/features/groups_spec.rb @@ -512,6 +512,86 @@ end end + describe 'group README', :js do + describe 'with :show_group_readme FF true' do + before do + stub_feature_flags(show_group_readme: true) + end + + context 'with gitlab-profile project' do + context 'with README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + + it 'renders README block on group page' do + visit group_path(group) + wait_for_requests + + expect(page).to have_text('README.md') + end + end + + context 'without README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, name: 'gitlab-profile', namespace: group) } + + it 'does not render README block on group page' do + visit group_path(group) + wait_for_requests + + expect(page).not_to have_text('README.md') + end + end + end + + context 'without gitlab-profile project' do + context 'with README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, :custom_repo, name: 'not-gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + + it 'does not render README block on group page' do + visit group_path(group) + wait_for_requests + + expect(page).not_to have_text('README.md') + end + end + + context 'without README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, name: 'not-gitlab-profile', namespace: group) } + + it 'does not render README block on group page' do + visit group_path(group) + wait_for_requests + + expect(page).not_to have_text('README.md') + end + end + end + end + + describe 'with :show_group_readme FF false' do + before do + stub_feature_flags(show_group_readme: false) + end + + context 'with gitlab-profile project' do + context 'with README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + + it 'does not render README block on group page' do + visit group_path(group) + wait_for_requests + + expect(page).not_to have_text('README.md') + end + end + end + end + end + def remove_with_confirm(button_text, confirm_with) click_button button_text fill_in 'confirm_name_input', with: confirm_with -- GitLab From 37fe7e952bd08b65e24ae7b8ec17be3cf286f189 Mon Sep 17 00:00:00 2001 From: Zachary Cuddy <zcuddy@gitlab.com> Date: Thu, 23 Mar 2023 11:24:57 -0500 Subject: [PATCH 2/5] Changes based on @tle_gitlab feedback - Better helper methods - Better partials - Faster specs --- app/helpers/groups_helper.rb | 12 ++- app/views/groups/_group_readme.html.haml | 4 +- app/views/groups/show.html.haml | 2 +- config/feature_categories.yml | 1 + ee/spec/views/groups/show.html.haml_spec.rb | 108 ++++++++++++++++++++ spec/features/groups_spec.rb | 70 +++---------- 6 files changed, 133 insertions(+), 64 deletions(-) create mode 100644 ee/spec/views/groups/show.html.haml_spec.rb diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb index 1ed513c7dd02178e..186fb609b1bcccb4 100644 --- a/app/helpers/groups_helper.rb +++ b/app/helpers/groups_helper.rb @@ -168,15 +168,17 @@ def group_overview_tabs_app_data(group) } end - def group_readme_app_data(group) - blob = group.group_readme&.present - + def group_readme_app_data(group_readme) { - web_path: blob.web_path, - name: blob.name + web_path: group_readme.present.web_path, + name: group_readme.present.name } end + def show_group_readme?(group) + Feature.enabled?(:show_group_readme, group) && group.group_readme + end + def enabled_git_access_protocol_options_for_group case ::Gitlab::CurrentSettings.enabled_git_access_protocol when nil, "" diff --git a/app/views/groups/_group_readme.html.haml b/app/views/groups/_group_readme.html.haml index 1a2c9f5891f57e4b..724e82594e63153a 100644 --- a/app/views/groups/_group_readme.html.haml +++ b/app/views/groups/_group_readme.html.haml @@ -1,3 +1,3 @@ -- return unless Feature.enabled?(:show_group_readme, @group) && @group.group_readme +- return unless show_group_readme?(group) -#js-group-readme{ data: group_readme_app_data(@group) } +#js-group-readme{ data: group_readme_app_data(group.group_readme) } diff --git a/app/views/groups/show.html.haml b/app/views/groups/show.html.haml index 370a03ca301330ba..4e664637457d44c7 100644 --- a/app/views/groups/show.html.haml +++ b/app/views/groups/show.html.haml @@ -29,4 +29,4 @@ #js-group-overview-tabs{ data: group_overview_tabs_app_data(@group) } -= render 'groups/group_readme' += render_if_exists 'groups/group_readme', group: @group diff --git a/config/feature_categories.yml b/config/feature_categories.yml index 1a4d6e59f2d271d6..8c91d918999d5f33 100644 --- a/config/feature_categories.yml +++ b/config/feature_categories.yml @@ -68,6 +68,7 @@ - gitlab_cli - gitlab_docs - global_search +- groups - helm_chart_registry - importers - incident_management diff --git a/ee/spec/views/groups/show.html.haml_spec.rb b/ee/spec/views/groups/show.html.haml_spec.rb new file mode 100644 index 0000000000000000..ad943552733b64c8 --- /dev/null +++ b/ee/spec/views/groups/show.html.haml_spec.rb @@ -0,0 +1,108 @@ +# frozen_string_literal: true + +# rubocop:disable RSpec/FactoryBot/AvoidCreate + +require 'spec_helper' + +RSpec.describe 'groups/show', feature_category: :groups do + describe 'group README' do + describe 'with :show_group_readme FF true' do + before do + stub_feature_flags(show_group_readme: true) + end + + context 'with gitlab-profile project' do + context 'with README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) do + create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, + files: { 'README.md' => 'Hello World' }) + end + + before do + assign(:group, group) + render + end + + it 'renders #js-group-readme' do + expect(rendered).to have_selector('#js-group-readme') + end + end + + context 'without README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, name: 'gitlab-profile', namespace: group) } + + before do + assign(:group, group) + render + end + + it 'does not render #js-group-readme' do + expect(rendered).not_to have_selector('#js-group-readme') + end + end + end + + context 'without gitlab-profile project' do + context 'with README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) do + create(:project, :custom_repo, name: 'non-gitlab-profile', namespace: group, + files: { 'README.md' => 'Hello World' }) + end + + before do + assign(:group, group) + render + end + + it 'does not render #js-group-readme' do + expect(rendered).not_to have_selector('#js-group-readme') + end + end + + context 'without README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, name: 'non-gitlab-profile', namespace: group) } + + before do + assign(:group, group) + render + end + + it 'does not render #js-group-readme' do + expect(rendered).not_to have_selector('#js-group-readme') + end + end + end + end + + describe 'with :show_group_readme FF false' do + before do + stub_feature_flags(show_group_readme: false) + end + + context 'with gitlab-profile project' do + context 'with README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) do + create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, + files: { 'README.md' => 'Hello World' }) + end + + before do + assign(:group, group) + render + end + + it 'does not render #js-group-readme' do + expect(rendered).not_to have_selector('#js-group-readme') + end + end + end + end + end +end + +# rubocop:enable RSpec/FactoryBot/AvoidCreate diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb index c9a8e8c981b364ef..b72affa9c5bd6dc5 100644 --- a/spec/features/groups_spec.rb +++ b/spec/features/groups_spec.rb @@ -518,55 +518,15 @@ stub_feature_flags(show_group_readme: true) end - context 'with gitlab-profile project' do - context 'with README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + context 'with gitlab-profile project and README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } - it 'renders README block on group page' do - visit group_path(group) - wait_for_requests - - expect(page).to have_text('README.md') - end - end - - context 'without README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, name: 'gitlab-profile', namespace: group) } - - it 'does not render README block on group page' do - visit group_path(group) - wait_for_requests - - expect(page).not_to have_text('README.md') - end - end - end - - context 'without gitlab-profile project' do - context 'with README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, :custom_repo, name: 'not-gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } - - it 'does not render README block on group page' do - visit group_path(group) - wait_for_requests - - expect(page).not_to have_text('README.md') - end - end - - context 'without README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, name: 'not-gitlab-profile', namespace: group) } - - it 'does not render README block on group page' do - visit group_path(group) - wait_for_requests + it 'renders README block on group page' do + visit group_path(group) + wait_for_requests - expect(page).not_to have_text('README.md') - end + expect(page).to have_text('README.md') end end end @@ -576,17 +536,15 @@ stub_feature_flags(show_group_readme: false) end - context 'with gitlab-profile project' do - context 'with README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + context 'with gitlab-profile project and README.md' do + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } - it 'does not render README block on group page' do - visit group_path(group) - wait_for_requests + it 'does not render README block on group page' do + visit group_path(group) + wait_for_requests - expect(page).not_to have_text('README.md') - end + expect(page).not_to have_text('README.md') end end end -- GitLab From 3764dc4534f43d0ddbf093fcfeb0271abf640f6b Mon Sep 17 00:00:00 2001 From: Zachary Cuddy <zcuddy@gitlab.com> Date: Tue, 28 Mar 2023 11:37:22 -0500 Subject: [PATCH 3/5] Addl changes based on @tle_gitlab feedback - Projects factory - build_stubbed in spec - Revert feature category --- config/feature_categories.yml | 1 - ee/spec/views/groups/show.html.haml_spec.rb | 116 +++++++------------- spec/factories/projects.rb | 7 ++ spec/features/groups_spec.rb | 4 +- 4 files changed, 50 insertions(+), 78 deletions(-) diff --git a/config/feature_categories.yml b/config/feature_categories.yml index 8c91d918999d5f33..1a4d6e59f2d271d6 100644 --- a/config/feature_categories.yml +++ b/config/feature_categories.yml @@ -68,7 +68,6 @@ - gitlab_cli - gitlab_docs - global_search -- groups - helm_chart_registry - importers - incident_management diff --git a/ee/spec/views/groups/show.html.haml_spec.rb b/ee/spec/views/groups/show.html.haml_spec.rb index ad943552733b64c8..8a98986aabb44baa 100644 --- a/ee/spec/views/groups/show.html.haml_spec.rb +++ b/ee/spec/views/groups/show.html.haml_spec.rb @@ -1,79 +1,42 @@ # frozen_string_literal: true -# rubocop:disable RSpec/FactoryBot/AvoidCreate - require 'spec_helper' -RSpec.describe 'groups/show', feature_category: :groups do +RSpec.describe 'groups/show', feature_category: :projects do describe 'group README' do + let_it_be(:group) { build_stubbed(:group) } + let_it_be(:readme_project) { build_stubbed(:project, :readme) } + + before do + assign(:group, group) + end + describe 'with :show_group_readme FF true' do before do stub_feature_flags(show_group_readme: true) end - context 'with gitlab-profile project' do - context 'with README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) do - create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, - files: { 'README.md' => 'Hello World' }) - end - - before do - assign(:group, group) - render - end - - it 'renders #js-group-readme' do - expect(rendered).to have_selector('#js-group-readme') - end + context 'with readme project' do + before do + allow(group).to receive(:group_readme).and_return(readme_project) end - context 'without README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, name: 'gitlab-profile', namespace: group) } + it 'renders #js-group-readme' do + render - before do - assign(:group, group) - render - end - - it 'does not render #js-group-readme' do - expect(rendered).not_to have_selector('#js-group-readme') - end + expect(rendered).to have_selector('#js-group-readme') end end - context 'without gitlab-profile project' do - context 'with README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) do - create(:project, :custom_repo, name: 'non-gitlab-profile', namespace: group, - files: { 'README.md' => 'Hello World' }) - end - - before do - assign(:group, group) - render - end - - it 'does not render #js-group-readme' do - expect(rendered).not_to have_selector('#js-group-readme') - end + context 'without readme project' do + before do + allow(group).to receive(:group_readme).and_return(nil) end - context 'without README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, name: 'non-gitlab-profile', namespace: group) } - - before do - assign(:group, group) - render - end + it 'does not render #js-group-readme' do + render - it 'does not render #js-group-readme' do - expect(rendered).not_to have_selector('#js-group-readme') - end + expect(rendered).not_to have_selector('#js-group-readme') end end end @@ -83,26 +46,29 @@ stub_feature_flags(show_group_readme: false) end - context 'with gitlab-profile project' do - context 'with README.md' do - let_it_be(:group) { create(:group) } - let_it_be(:project) do - create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, - files: { 'README.md' => 'Hello World' }) - end - - before do - assign(:group, group) - render - end - - it 'does not render #js-group-readme' do - expect(rendered).not_to have_selector('#js-group-readme') - end + context 'with readme project' do + before do + allow(group).to receive(:group_readme).and_return(readme_project) + end + + it 'does not render #js-group-readme' do + render + + expect(rendered).not_to have_selector('#js-group-readme') + end + end + + context 'without readme project' do + before do + allow(group).to receive(:group_readme).and_return(nil) + end + + it 'does not render #js-group-readme' do + render + + expect(rendered).not_to have_selector('#js-group-readme') end end end end end - -# rubocop:enable RSpec/FactoryBot/AvoidCreate diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb index 299dd165807b95da..c078514514b0193e 100644 --- a/spec/factories/projects.rb +++ b/spec/factories/projects.rb @@ -535,4 +535,11 @@ trait :in_subgroup do namespace factory: [:group, :nested] end + + trait :readme do + custom_repo + + name { 'gitlab-profile' } + files { { 'README.md' => 'Hello World' } } + end end diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb index b72affa9c5bd6dc5..f86db6674208f4c7 100644 --- a/spec/features/groups_spec.rb +++ b/spec/features/groups_spec.rb @@ -520,7 +520,7 @@ context 'with gitlab-profile project and README.md' do let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + let_it_be(:project) { create(:project, :readme, namespace: group) } it 'renders README block on group page' do visit group_path(group) @@ -538,7 +538,7 @@ context 'with gitlab-profile project and README.md' do let_it_be(:group) { create(:group) } - let_it_be(:project) { create(:project, :custom_repo, name: 'gitlab-profile', namespace: group, files: { 'README.md' => 'Hello World' }) } + let_it_be(:project) { create(:project, :readme, namespace: group) } it 'does not render README block on group page' do visit group_path(group) -- GitLab From 0d70101d59c0783c4cd645cefeacafcb6a83fa9d Mon Sep 17 00:00:00 2001 From: Zachary Cuddy <zcuddy@gitlab.com> Date: Tue, 28 Mar 2023 11:54:31 -0500 Subject: [PATCH 4/5] Changes based on @fernando-c feedback - More readabile dataset variables --- app/assets/javascripts/groups/init_group_readme.js | 4 ++-- app/assets/javascripts/pages/groups/show/index.js | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/groups/init_group_readme.js b/app/assets/javascripts/groups/init_group_readme.js index d3cc3247c8dc9143..7cde64fed4da15eb 100644 --- a/app/assets/javascripts/groups/init_group_readme.js +++ b/app/assets/javascripts/groups/init_group_readme.js @@ -10,7 +10,7 @@ export const initGroupReadme = () => { if (!el) return false; - const blob = (({ webPath, name }) => ({ webPath, name }))(el.dataset); + const { webPath, name } = el.dataset; return new Vue({ el, @@ -18,7 +18,7 @@ export const initGroupReadme = () => { render(createElement) { return createElement(FilePreview, { props: { - blob, + blob: { webPath, name }, }, }); }, diff --git a/app/assets/javascripts/pages/groups/show/index.js b/app/assets/javascripts/pages/groups/show/index.js index d3013eb7ff4cf562..85afdaaf0d832078 100644 --- a/app/assets/javascripts/pages/groups/show/index.js +++ b/app/assets/javascripts/pages/groups/show/index.js @@ -13,7 +13,5 @@ if (window.gon.features?.showGroupReadme) { .then(({ initGroupReadme }) => { initGroupReadme(); }) - .catch(() => { - // Fail silently - }); + .catch(() => {}); } -- GitLab From 1700c20c38c4f8b04d6b30ac7223e4daf3dc37c1 Mon Sep 17 00:00:00 2001 From: Zachary Cuddy <zcuddy@gitlab.com> Date: Thu, 30 Mar 2023 10:26:22 -0500 Subject: [PATCH 5/5] Changes based on reviewer feedback - Remove dynamic import - Use render partial - Proper spec file location - Proper feature category --- app/assets/javascripts/pages/groups/show/index.js | 10 ++-------- app/views/groups/show.html.haml | 2 +- {ee/spec => spec}/views/groups/show.html.haml_spec.rb | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) rename {ee/spec => spec}/views/groups/show.html.haml_spec.rb (96%) diff --git a/app/assets/javascripts/pages/groups/show/index.js b/app/assets/javascripts/pages/groups/show/index.js index 85afdaaf0d832078..f6a4ca0f360e2ea2 100644 --- a/app/assets/javascripts/pages/groups/show/index.js +++ b/app/assets/javascripts/pages/groups/show/index.js @@ -1,5 +1,6 @@ import leaveByUrl from '~/namespaces/leave_by_url'; import { initGroupOverviewTabs } from '~/groups/init_overview_tabs'; +import { initGroupReadme } from '~/groups/init_group_readme'; import initReadMore from '~/read_more'; import initGroupDetails from '../shared/group_details'; @@ -7,11 +8,4 @@ leaveByUrl('group'); initGroupDetails(); initGroupOverviewTabs(); initReadMore(); - -if (window.gon.features?.showGroupReadme) { - import('~/groups/init_group_readme') - .then(({ initGroupReadme }) => { - initGroupReadme(); - }) - .catch(() => {}); -} +initGroupReadme(); diff --git a/app/views/groups/show.html.haml b/app/views/groups/show.html.haml index 4e664637457d44c7..8d7a7dd6b1b95b84 100644 --- a/app/views/groups/show.html.haml +++ b/app/views/groups/show.html.haml @@ -29,4 +29,4 @@ #js-group-overview-tabs{ data: group_overview_tabs_app_data(@group) } -= render_if_exists 'groups/group_readme', group: @group += render partial: 'groups/group_readme', locals: { group: @group } diff --git a/ee/spec/views/groups/show.html.haml_spec.rb b/spec/views/groups/show.html.haml_spec.rb similarity index 96% rename from ee/spec/views/groups/show.html.haml_spec.rb rename to spec/views/groups/show.html.haml_spec.rb index 8a98986aabb44baa..9c876f56771cdb7b 100644 --- a/ee/spec/views/groups/show.html.haml_spec.rb +++ b/spec/views/groups/show.html.haml_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'groups/show', feature_category: :projects do +RSpec.describe 'groups/show', feature_category: :subgroups do describe 'group README' do let_it_be(:group) { build_stubbed(:group) } let_it_be(:readme_project) { build_stubbed(:project, :readme) } -- GitLab