From 43ff7386411af0f538710f3627622f71e5e34472 Mon Sep 17 00:00:00 2001 From: Jarka Kadlecova Date: Mon, 1 May 2017 15:14:35 +0200 Subject: Support uploaders for personal snippets comments --- spec/services/projects/upload_service_spec.rb | 73 --------------------------- spec/services/upload_service_spec.rb | 73 +++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 73 deletions(-) delete mode 100644 spec/services/projects/upload_service_spec.rb create mode 100644 spec/services/upload_service_spec.rb (limited to 'spec/services') diff --git a/spec/services/projects/upload_service_spec.rb b/spec/services/projects/upload_service_spec.rb deleted file mode 100644 index d2cefa46bfa..00000000000 --- a/spec/services/projects/upload_service_spec.rb +++ /dev/null @@ -1,73 +0,0 @@ -require 'spec_helper' - -describe Projects::UploadService, services: true do - describe 'File service' do - before do - @user = create(:user) - @project = create(:empty_project, creator_id: @user.id, namespace: @user.namespace) - end - - context 'for valid gif file' do - before do - gif = fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') - @link_to_file = upload_file(@project, gif) - end - - it { expect(@link_to_file).to have_key(:alt) } - it { expect(@link_to_file).to have_key(:url) } - it { expect(@link_to_file).to have_value('banana_sample') } - it { expect(@link_to_file[:url]).to match('banana_sample.gif') } - end - - context 'for valid png file' do - before do - png = fixture_file_upload(Rails.root + 'spec/fixtures/dk.png', - 'image/png') - @link_to_file = upload_file(@project, png) - end - - it { expect(@link_to_file).to have_key(:alt) } - it { expect(@link_to_file).to have_key(:url) } - it { expect(@link_to_file).to have_value('dk') } - it { expect(@link_to_file[:url]).to match('dk.png') } - end - - context 'for valid jpg file' do - before do - jpg = fixture_file_upload(Rails.root + 'spec/fixtures/rails_sample.jpg', 'image/jpg') - @link_to_file = upload_file(@project, jpg) - end - - it { expect(@link_to_file).to have_key(:alt) } - it { expect(@link_to_file).to have_key(:url) } - it { expect(@link_to_file).to have_value('rails_sample') } - it { expect(@link_to_file[:url]).to match('rails_sample.jpg') } - end - - context 'for txt file' do - before do - txt = fixture_file_upload(Rails.root + 'spec/fixtures/doc_sample.txt', 'text/plain') - @link_to_file = upload_file(@project, txt) - end - - it { expect(@link_to_file).to have_key(:alt) } - it { expect(@link_to_file).to have_key(:url) } - it { expect(@link_to_file).to have_value('doc_sample.txt') } - it { expect(@link_to_file[:url]).to match('doc_sample.txt') } - end - - context 'for too large a file' do - before do - txt = fixture_file_upload(Rails.root + 'spec/fixtures/doc_sample.txt', 'text/plain') - allow(txt).to receive(:size) { 1000.megabytes.to_i } - @link_to_file = upload_file(@project, txt) - end - - it { expect(@link_to_file).to eq(nil) } - end - end - - def upload_file(project, file) - Projects::UploadService.new(project, file).execute - end -end diff --git a/spec/services/upload_service_spec.rb b/spec/services/upload_service_spec.rb new file mode 100644 index 00000000000..95ba28dbecd --- /dev/null +++ b/spec/services/upload_service_spec.rb @@ -0,0 +1,73 @@ +require 'spec_helper' + +describe UploadService, services: true do + describe 'File service' do + before do + @user = create(:user) + @project = create(:empty_project, creator_id: @user.id, namespace: @user.namespace) + end + + context 'for valid gif file' do + before do + gif = fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') + @link_to_file = upload_file(@project, gif) + end + + it { expect(@link_to_file).to have_key(:alt) } + it { expect(@link_to_file).to have_key(:url) } + it { expect(@link_to_file).to have_value('banana_sample') } + it { expect(@link_to_file[:url]).to match('banana_sample.gif') } + end + + context 'for valid png file' do + before do + png = fixture_file_upload(Rails.root + 'spec/fixtures/dk.png', + 'image/png') + @link_to_file = upload_file(@project, png) + end + + it { expect(@link_to_file).to have_key(:alt) } + it { expect(@link_to_file).to have_key(:url) } + it { expect(@link_to_file).to have_value('dk') } + it { expect(@link_to_file[:url]).to match('dk.png') } + end + + context 'for valid jpg file' do + before do + jpg = fixture_file_upload(Rails.root + 'spec/fixtures/rails_sample.jpg', 'image/jpg') + @link_to_file = upload_file(@project, jpg) + end + + it { expect(@link_to_file).to have_key(:alt) } + it { expect(@link_to_file).to have_key(:url) } + it { expect(@link_to_file).to have_value('rails_sample') } + it { expect(@link_to_file[:url]).to match('rails_sample.jpg') } + end + + context 'for txt file' do + before do + txt = fixture_file_upload(Rails.root + 'spec/fixtures/doc_sample.txt', 'text/plain') + @link_to_file = upload_file(@project, txt) + end + + it { expect(@link_to_file).to have_key(:alt) } + it { expect(@link_to_file).to have_key(:url) } + it { expect(@link_to_file).to have_value('doc_sample.txt') } + it { expect(@link_to_file[:url]).to match('doc_sample.txt') } + end + + context 'for too large a file' do + before do + txt = fixture_file_upload(Rails.root + 'spec/fixtures/doc_sample.txt', 'text/plain') + allow(txt).to receive(:size) { 1000.megabytes.to_i } + @link_to_file = upload_file(@project, txt) + end + + it { expect(@link_to_file).to eq(nil) } + end + end + + def upload_file(project, file) + described_class.new(project, file, FileUploader).execute + end +end -- cgit v1.2.1 From d02e7226c47db88549f54d0fed0e2b33a726908d Mon Sep 17 00:00:00 2001 From: Mark Fletcher Date: Mon, 1 May 2017 13:22:11 +0800 Subject: Detect already enabled DeployKeys in EnableDeployKeyService Ensures deploy keys can't be re-added, which causes a validation error --- spec/services/projects/enable_deploy_key_service_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'spec/services') diff --git a/spec/services/projects/enable_deploy_key_service_spec.rb b/spec/services/projects/enable_deploy_key_service_spec.rb index a37510cf159..78626fbad4b 100644 --- a/spec/services/projects/enable_deploy_key_service_spec.rb +++ b/spec/services/projects/enable_deploy_key_service_spec.rb @@ -21,6 +21,16 @@ describe Projects::EnableDeployKeyService, services: true do end end + context 'add the same key twice' do + before do + project.deploy_keys << deploy_key + end + + it 'returns existing key' do + expect(service.execute).to eq(deploy_key) + end + end + def service Projects::EnableDeployKeyService.new(project, user, params) end -- cgit v1.2.1 From b64a37c4ed5561d423ee607f9821b75fd0337168 Mon Sep 17 00:00:00 2001 From: Alfredo Sumaran Date: Thu, 4 May 2017 08:09:21 +0000 Subject: Allow to create new branch and empty WIP merge request from issue page --- .../create_from_issue_service_spec.rb | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 spec/services/merge_requests/create_from_issue_service_spec.rb (limited to 'spec/services') diff --git a/spec/services/merge_requests/create_from_issue_service_spec.rb b/spec/services/merge_requests/create_from_issue_service_spec.rb new file mode 100644 index 00000000000..1588d30c394 --- /dev/null +++ b/spec/services/merge_requests/create_from_issue_service_spec.rb @@ -0,0 +1,74 @@ +require 'spec_helper' + +describe MergeRequests::CreateFromIssueService, services: true do + let(:project) { create(:project, :repository) } + let(:user) { create(:user) } + let(:issue) { create(:issue, project: project) } + + subject(:service) { described_class.new(project, user, issue_iid: issue.iid) } + + before do + project.add_developer(user) + end + + describe '#execute' do + it 'returns an error with invalid issue iid' do + result = described_class.new(project, user, issue_iid: -1).execute + + expect(result[:status]).to eq :error + expect(result[:message]).to eq 'Invalid issue iid' + end + + it 'delegates issue search to IssuesFinder' do + expect_any_instance_of(IssuesFinder).to receive(:execute).once.and_call_original + + described_class.new(project, user, issue_iid: -1).execute + end + + it 'delegates the branch creation to CreateBranchService' do + expect_any_instance_of(CreateBranchService).to receive(:execute).once.and_call_original + + service.execute + end + + it 'creates a branch based on issue title' do + service.execute + + expect(project.repository.branch_exists?(issue.to_branch_name)).to be_truthy + end + + it 'creates a system note' do + expect(SystemNoteService).to receive(:new_issue_branch).with(issue, project, user, issue.to_branch_name) + + service.execute + end + + it 'creates a merge request' do + expect { service.execute }.to change(project.merge_requests, :count).by(1) + end + + it 'sets the merge request title to: "WIP: Resolves "$issue-title"' do + result = service.execute + + expect(result[:merge_request].title).to eq("WIP: Resolve \"#{issue.title}\"") + end + + it 'sets the merge request author to current user' do + result = service.execute + + expect(result[:merge_request].author).to eq user + end + + it 'sets the merge request source branch to the new issue branch' do + result = service.execute + + expect(result[:merge_request].source_branch).to eq issue.to_branch_name + end + + it 'sets the merge request target branch to the project default branch' do + result = service.execute + + expect(result[:merge_request].target_branch).to eq project.default_branch + end + end +end -- cgit v1.2.1