From 2ff0b5e350ff77e0122adbe2b462636382828a86 Mon Sep 17 00:00:00 2001 From: Jonas Waelter Date: Tue, 8 Jun 2021 09:20:40 +0200 Subject: [PATCH] Replace 'tag_list' with 'topic_list' attribute on project Changelog: removed --- app/graphql/types/project_type.rb | 4 ++++ app/helpers/tags_helper.rb | 10 ---------- app/models/project.rb | 4 ---- spec/features/projects/show/schema_markup_spec.rb | 4 ++-- spec/graphql/resolvers/projects_resolver_spec.rb | 2 +- spec/models/project_spec.rb | 8 +------- spec/requests/api/graphql/project_query_spec.rb | 2 +- spec/requests/api/projects_spec.rb | 12 ++++++------ 8 files changed, 15 insertions(+), 31 deletions(-) diff --git a/app/graphql/types/project_type.rb b/app/graphql/types/project_type.rb index a2852588e8976a..55dc73d898df8f 100644 --- a/app/graphql/types/project_type.rb +++ b/app/graphql/types/project_type.rb @@ -387,6 +387,10 @@ def sast_ci_configuration ::Security::CiConfiguration::SastParserService.new(object).configuration end + def tag_list + object.topic_list + end + private def project diff --git a/app/helpers/tags_helper.rb b/app/helpers/tags_helper.rb index bfc8803f514763..86289ec8ed24e8 100644 --- a/app/helpers/tags_helper.rb +++ b/app/helpers/tags_helper.rb @@ -15,16 +15,6 @@ def filter_tags_path(options = {}) project_tags_path(@project, @id, options) end - def tag_list(project) - html = [] - - project.tag_list.each do |tag| - html << link_to(tag, tag_path(tag)) - end - - html.join.html_safe - end - def protected_tag?(project, tag) ProtectedTag.protected?(project, tag.name) end diff --git a/app/models/project.rb b/app/models/project.rb index 6895bba7cf7c64..0a16a056271037 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -127,10 +127,6 @@ class Project < ApplicationRecord after_create :check_repository_absence! acts_as_ordered_taggable_on :topics - # The 'tag_list' alias is required during the 'tags -> topics' migration - # TODO: eliminate 'tag_list' in the further process of the migration - # https://gitlab.com/gitlab-org/gitlab/-/issues/328226 - alias_attribute :tag_list, :topic_list attr_accessor :old_path_with_namespace attr_accessor :template_name diff --git a/spec/features/projects/show/schema_markup_spec.rb b/spec/features/projects/show/schema_markup_spec.rb index 1777b72cbf5fbf..28803db924acc0 100644 --- a/spec/features/projects/show/schema_markup_spec.rb +++ b/spec/features/projects/show/schema_markup_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Projects > Show > Schema Markup' do - let_it_be(:project) { create(:project, :repository, :public, :with_avatar, description: 'foobar', tag_list: 'tag1, tag2') } + let_it_be(:project) { create(:project, :repository, :public, :with_avatar, description: 'foobar', topic_list: 'topic1, topic2') } it 'shows SoftwareSourceCode structured markup', :js do visit project_path(project) @@ -16,7 +16,7 @@ expect(page).to have_selector('[itemprop="identifier"]', text: "Project ID: #{project.id}") expect(page).to have_selector('[itemprop="description"]', text: project.description) expect(page).to have_selector('[itemprop="license"]', text: project.repository.license.name) - expect(find_all('[itemprop="keywords"]').map(&:text)).to match_array(project.tag_list.map(&:capitalize)) + expect(find_all('[itemprop="keywords"]').map(&:text)).to match_array(project.topic_list.map(&:capitalize)) expect(page).to have_selector('[itemprop="about"]') end end diff --git a/spec/graphql/resolvers/projects_resolver_spec.rb b/spec/graphql/resolvers/projects_resolver_spec.rb index ed798fb0351f31..2f2aacb9ad5aeb 100644 --- a/spec/graphql/resolvers/projects_resolver_spec.rb +++ b/spec/graphql/resolvers/projects_resolver_spec.rb @@ -10,7 +10,7 @@ let_it_be(:group) { create(:group, name: 'public-group') } let_it_be(:private_group) { create(:group, name: 'private-group') } - let_it_be(:project) { create(:project, :public, tag_list: %w(ruby javascript)) } + let_it_be(:project) { create(:project, :public, topic_list: %w(ruby javascript)) } let_it_be(:other_project) { create(:project, :public) } let_it_be(:group_project) { create(:project, :public, group: group) } let_it_be(:private_project) { create(:project, :private) } diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 0e6f662da50402..242d5947d26ab0 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -6945,7 +6945,7 @@ def enable_lfs end describe 'topics' do - let_it_be(:project) { create(:project, tag_list: 'topic1, topic2, topic3') } + let_it_be(:project) { create(:project, topic_list: 'topic1, topic2, topic3') } it 'topic_list returns correct string array' do expect(project.topic_list).to match_array(%w[topic1 topic2 topic3]) @@ -6955,12 +6955,6 @@ def enable_lfs expect(project.topics.first.class.name).to eq('ActsAsTaggableOn::Tag') expect(project.topics.map(&:name)).to match_array(%w[topic1 topic2 topic3]) end - - context 'aliases' do - it 'tag_list returns correct string array' do - expect(project.tag_list).to match_array(%w[topic1 topic2 topic3]) - end - end end shared_examples 'all_runners' do diff --git a/spec/requests/api/graphql/project_query_spec.rb b/spec/requests/api/graphql/project_query_spec.rb index 4160538b243478..54375d4de1d562 100644 --- a/spec/requests/api/graphql/project_query_spec.rb +++ b/spec/requests/api/graphql/project_query_spec.rb @@ -65,7 +65,7 @@ end it 'includes topics array' do - project.update!(tag_list: 'topic1, topic2, topic3') + project.update!(topic_list: 'topic1, topic2, topic3') post_graphql(query, current_user: current_user) diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index b62f8e6b259c1b..87e4a416f9fe88 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -287,9 +287,9 @@ expect(json_response.find { |hash| hash['id'] == project.id }.keys).not_to include('open_issues_count') end - context 'filter by topic (column tag_list)' do + context 'filter by topic (column topic_list)' do before do - project.update!(tag_list: %w(ruby javascript)) + project.update!(topic_list: %w(ruby javascript)) end it 'returns no projects' do @@ -1105,7 +1105,7 @@ post api('/projects', user), params: project - expect(json_response['tag_list']).to eq(%w[tagFirst tagSecond]) + expect(json_response['topics']).to eq(%w[tagFirst tagSecond]) end it 'sets topics to a project' do @@ -1113,7 +1113,7 @@ post api('/projects', user), params: project - expect(json_response['tag_list']).to eq(%w[topic1 topics2]) + expect(json_response['topics']).to eq(%w[topic1 topics2]) end it 'uploads avatar for project a project' do @@ -3111,7 +3111,7 @@ def failure_message(diff) expect(response).to have_gitlab_http_status(:ok) - expect(json_response['tag_list']).to eq(%w[topic1]) + expect(json_response['topics']).to eq(%w[topic1]) end it 'updates topics' do @@ -3121,7 +3121,7 @@ def failure_message(diff) expect(response).to have_gitlab_http_status(:ok) - expect(json_response['tag_list']).to eq(%w[topic2]) + expect(json_response['topics']).to eq(%w[topic2]) end end -- GitLab