diff options
author | Alejandro RodrÃguez <alejorro70@gmail.com> | 2017-08-31 18:01:07 -0300 |
---|---|---|
committer | Alejandro RodrÃguez <alejorro70@gmail.com> | 2017-09-05 20:12:25 -0300 |
commit | ff3eeffa083e6f2299db9c622611762028578bfa (patch) | |
tree | 6a59889232aa40480af33f06243e37059d540ab1 /spec | |
parent | 8323e55b6c0d59627c584b49e70d4f6ccfd3c8f0 (diff) | |
download | gitlab-ce-ff3eeffa083e6f2299db9c622611762028578bfa.tar.gz |
Implement /internal/pre-receive for shell operations
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/internal_spec.rb | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/spec/requests/api/internal_spec.rb b/spec/requests/api/internal_spec.rb index 1494c451543..1274e66bb4c 100644 --- a/spec/requests/api/internal_spec.rb +++ b/spec/requests/api/internal_spec.rb @@ -5,6 +5,8 @@ describe API::Internal do let(:key) { create(:key, user: user) } let(:project) { create(:project, :repository) } let(:secret_token) { Gitlab::Shell.secret_token } + let(:gl_repository) { "project-#{project.id}" } + let(:reference_counter) { double('ReferenceCounter') } describe "GET /internal/check" do it do @@ -672,9 +674,7 @@ describe API::Internal do # end describe 'POST /internal/post_receive' do - let(:gl_repository) { "project-#{project.id}" } let(:identifier) { 'key-123' } - let(:reference_counter) { double('ReferenceCounter') } let(:valid_params) do { @@ -760,6 +760,22 @@ describe API::Internal do end end + describe 'POST /internal/pre_receive' do + let(:valid_params) do + { gl_repository: gl_repository, secret_token: secret_token } + end + + it 'decreases the reference counter and returns the result' do + expect(Gitlab::ReferenceCounter).to receive(:new).with(gl_repository) + .and_return(reference_counter) + expect(reference_counter).to receive(:increase).and_return(true) + + post api("/internal/pre_receive"), valid_params + + expect(json_response['reference_counter_increased']).to be(true) + end + end + def project_with_repo_path(path) double().tap do |fake_project| allow(fake_project).to receive_message_chain('repository.path_to_repo' => path) |