diff options
author | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2016-03-15 13:03:43 +0300 |
---|---|---|
committer | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2016-03-15 13:03:43 +0300 |
commit | 30b36c92c386e93b432166fb6f9dd973882a6d82 (patch) | |
tree | 3a1ad27bee57f67a2c16bc44aaad38cbae51bf3e /spec | |
parent | 0beae70efaafc361cf15c13231bdc5ed6de8569f (diff) |
Use an exception to pass messages
Diffstat (limited to 'spec')
-rw-r--r-- | spec/services/git_push_service_spec.rb | 24 | ||||
-rw-r--r-- | spec/services/projects/housekeeping_service_spec.rb | 6 |
2 files changed, 21 insertions, 9 deletions
diff --git a/spec/services/git_push_service_spec.rb b/spec/services/git_push_service_spec.rb index ebf3ec1f5fd..145bc937560 100644 --- a/spec/services/git_push_service_spec.rb +++ b/spec/services/git_push_service_spec.rb @@ -402,7 +402,7 @@ describe GitPushService, services: true do end describe "housekeeping" do - let(:housekeeping) { instance_double('Projects::HousekeepingService', increment!: nil, needed?: false) } + let(:housekeeping) { Projects::HousekeepingService.new(project) } before do allow(Projects::HousekeepingService).to receive(:new).and_return(housekeeping) @@ -414,16 +414,28 @@ describe GitPushService, services: true do execute_service(project, user, @oldrev, @newrev, @ref) end - it 'performs housekeeping when needed' do - expect(housekeeping).to receive(:needed?).and_return(true) - expect(housekeeping).to receive(:execute) + context 'when housekeeping is needed' do + before do + allow(housekeeping).to receive(:needed?).and_return(true) + end - execute_service(project, user, @oldrev, @newrev, @ref) + it 'performs housekeeping' do + expect(housekeeping).to receive(:execute) + + execute_service(project, user, @oldrev, @newrev, @ref) + end + + it 'does not raise an exception' do + allow(housekeeping).to receive(:try_obtain_lease).and_return(false) + + execute_service(project, user, @oldrev, @newrev, @ref) + end end + it 'increments the push counter' do expect(housekeeping).to receive(:increment!) - + execute_service(project, user, @oldrev, @newrev, @ref) end end diff --git a/spec/services/projects/housekeeping_service_spec.rb b/spec/services/projects/housekeeping_service_spec.rb index 4c3577149f9..93bf1b81fbe 100644 --- a/spec/services/projects/housekeeping_service_spec.rb +++ b/spec/services/projects/housekeeping_service_spec.rb @@ -14,7 +14,7 @@ describe Projects::HousekeepingService do expect(subject).to receive(:try_obtain_lease).and_return(true) expect(GitlabShellWorker).to receive(:perform_async).with(:gc, project.path_with_namespace) - expect(subject.execute).to include('successfully started') + subject.execute expect(project.pushes_since_gc).to eq(0) end @@ -22,8 +22,8 @@ describe Projects::HousekeepingService do expect(subject).to receive(:try_obtain_lease).and_return(false) expect(GitlabShellWorker).not_to receive(:perform_async) - expect(subject.execute).to include('already triggered') - expect(project.pushes_since_gc).to eq(3) + expect { subject.execute }.to raise_error(Projects::HousekeepingService::LeaseTaken) + expect(project.pushes_since_gc).to eq(0) end end |