Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-06-08 06:10:25 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-06-08 06:10:25 +0300
commitbd1e3cbdeb153c9bf73abe3ba7bf3ecb7d203719 (patch)
tree6a71d0d6e4a71035058d662a9ed1c0dfbd92fff6 /spec
parent6aead03bb3056c7ee0104311236c2ae06f0e2d18 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/requests/api/projects_spec.rb30
-rw-r--r--spec/services/projects/create_service_spec.rb28
-rw-r--r--spec/services/projects/update_service_spec.rb25
3 files changed, 82 insertions, 1 deletions
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 51b87a55b1e..96390aa576b 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -1033,7 +1033,7 @@ RSpec.describe API::Projects do
expect(json_response['readme_url']).to eql("#{Gitlab.config.gitlab.url}/#{json_response['namespace']['full_path']}/somewhere/-/blob/master/README.md")
end
- it 'sets tag list to a project' do
+ it 'sets tag list to a project (deprecated)' do
project = attributes_for(:project, tag_list: %w[tagFirst tagSecond])
post api('/projects', user), params: project
@@ -1041,6 +1041,14 @@ RSpec.describe API::Projects do
expect(json_response['tag_list']).to eq(%w[tagFirst tagSecond])
end
+ it 'sets topics to a project' do
+ project = attributes_for(:project, topics: %w[topic1 topics2])
+
+ post api('/projects', user), params: project
+
+ expect(json_response['tag_list']).to eq(%w[topic1 topics2])
+ end
+
it 'uploads avatar for project a project' do
project = attributes_for(:project, avatar: fixture_file_upload('spec/fixtures/banana_sample.gif', 'image/gif'))
@@ -3012,6 +3020,26 @@ RSpec.describe API::Projects do
expect(json_response['auto_devops_enabled']).to eq(false)
end
+
+ it 'updates topics using tag_list (deprecated)' do
+ project_param = { tag_list: 'topic1' }
+
+ put api("/projects/#{project3.id}", user), params: project_param
+
+ expect(response).to have_gitlab_http_status(:ok)
+
+ expect(json_response['tag_list']).to eq(%w[topic1])
+ end
+
+ it 'updates topics' do
+ project_param = { topics: 'topic2' }
+
+ put api("/projects/#{project3.id}", user), params: project_param
+
+ expect(response).to have_gitlab_http_status(:ok)
+
+ expect(json_response['tag_list']).to eq(%w[topic2])
+ end
end
context 'when authenticated as project maintainer' do
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb
index 6c0f36ededa..753c89eb981 100644
--- a/spec/services/projects/create_service_spec.rb
+++ b/spec/services/projects/create_service_spec.rb
@@ -82,6 +82,34 @@ RSpec.describe Projects::CreateService, '#execute' do
end
end
+ describe 'topics' do
+ subject(:project) { create_project(user, opts) }
+
+ context "with 'topics' parameter" do
+ let(:opts) { { topics: 'topics' } }
+
+ it 'keeps them as specified' do
+ expect(project.topic_list).to eq(%w[topics])
+ end
+ end
+
+ context "with 'topic_list' parameter" do
+ let(:opts) { { topic_list: 'topic_list' } }
+
+ it 'keeps them as specified' do
+ expect(project.topic_list).to eq(%w[topic_list])
+ end
+ end
+
+ context "with 'tag_list' parameter (deprecated)" do
+ let(:opts) { { tag_list: 'tag_list' } }
+
+ it 'keeps them as specified' do
+ expect(project.topic_list).to eq(%w[tag_list])
+ end
+ end
+ end
+
context 'user namespace' do
it do
project = create_project(user, opts)
diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb
index b9e909e8615..e1b22da2e61 100644
--- a/spec/services/projects/update_service_spec.rb
+++ b/spec/services/projects/update_service_spec.rb
@@ -587,6 +587,31 @@ RSpec.describe Projects::UpdateService do
it_behaves_like 'the transfer was not scheduled'
end
end
+
+ describe 'when updating topics' do
+ let(:project) { create(:project, topic_list: 'topic1, topic2') }
+
+ it 'update using topics' do
+ result = update_project(project, user, { topics: 'topics' })
+
+ expect(result[:status]).to eq(:success)
+ expect(project.topic_list).to eq(%w[topics])
+ end
+
+ it 'update using topic_list' do
+ result = update_project(project, user, { topic_list: 'topic_list' })
+
+ expect(result[:status]).to eq(:success)
+ expect(project.topic_list).to eq(%w[topic_list])
+ end
+
+ it 'update using tag_list (deprecated)' do
+ result = update_project(project, user, { tag_list: 'tag_list' })
+
+ expect(result[:status]).to eq(:success)
+ expect(project.topic_list).to eq(%w[tag_list])
+ end
+ end
end
describe '#run_auto_devops_pipeline?' do