diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-08 06:10:25 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-08 06:10:25 +0300 |
commit | bd1e3cbdeb153c9bf73abe3ba7bf3ecb7d203719 (patch) | |
tree | 6a71d0d6e4a71035058d662a9ed1c0dfbd92fff6 /spec | |
parent | 6aead03bb3056c7ee0104311236c2ae06f0e2d18 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/projects_spec.rb | 30 | ||||
-rw-r--r-- | spec/services/projects/create_service_spec.rb | 28 | ||||
-rw-r--r-- | spec/services/projects/update_service_spec.rb | 25 |
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 |