Commit 1b9b03c152a36ef552d6da21d5bc25e682f4c0f6
1 parent
00b198bb
Exists in
colab
and in
4 other branches
Add tests for repository#notify_push
* Still needs the action implementation on repository controller Signed off by: Eduardo Araújo <duduktamg@hotmail.com>
Showing
1 changed file
with
63 additions
and
14 deletions
Show diff stats
spec/controllers/repositories_controller_spec.rb
| ... | ... | @@ -171,7 +171,6 @@ describe RepositoriesController, :type => :controller do |
| 171 | 171 | end |
| 172 | 172 | |
| 173 | 173 | context 'for an specific module_result' do |
| 174 | - | |
| 175 | 174 | before :each do |
| 176 | 175 | KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration, :with_id)) |
| 177 | 176 | Repository.expects(:find).with(repository.id).returns(repository) |
| ... | ... | @@ -209,8 +208,8 @@ describe RepositoriesController, :type => :controller do |
| 209 | 208 | delete :destroy, id: repository.id |
| 210 | 209 | end |
| 211 | 210 | |
| 212 | - it { is_expected.to redirect_to(projects_url) } | |
| 213 | - it { is_expected.to respond_with(:redirect) } | |
| 211 | + it { is_expected.to redirect_to(projects_url) } | |
| 212 | + it { is_expected.to respond_with(:redirect) } | |
| 214 | 213 | end |
| 215 | 214 | end |
| 216 | 215 | |
| ... | ... | @@ -346,7 +345,7 @@ describe RepositoriesController, :type => :controller do |
| 346 | 345 | context 'with another state then READY' do |
| 347 | 346 | let(:processing) { FactoryGirl.build(:processing, state: 'ANALYZING') } |
| 348 | 347 | |
| 349 | - before :each do | |
| 348 | + before :each do | |
| 350 | 349 | repository.expects(:last_processing).returns(processing) |
| 351 | 350 | Repository.expects(:find).at_least_once.with(repository.id).returns(repository) |
| 352 | 351 | |
| ... | ... | @@ -400,16 +399,16 @@ describe RepositoriesController, :type => :controller do |
| 400 | 399 | end |
| 401 | 400 | |
| 402 | 401 | describe 'process_repository' do |
| 403 | - let(:repository) { FactoryGirl.build(:repository) } | |
| 404 | - before :each do | |
| 405 | - sign_in FactoryGirl.create(:user) | |
| 406 | - subject.expects(:repository_owner?).returns true | |
| 407 | - repository.expects(:process) | |
| 408 | - Repository.expects(:find).at_least_once.with(repository.id).returns(repository) | |
| 409 | - KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration, :with_id)) | |
| 410 | - get :process_repository, id: repository.id | |
| 411 | - end | |
| 412 | - it { is_expected.to redirect_to(repository_path(repository.id)) } | |
| 402 | + let(:repository) { FactoryGirl.build(:repository) } | |
| 403 | + before :each do | |
| 404 | + sign_in FactoryGirl.create(:user) | |
| 405 | + subject.expects(:repository_owner?).returns true | |
| 406 | + repository.expects(:process) | |
| 407 | + Repository.expects(:find).at_least_once.with(repository.id).returns(repository) | |
| 408 | + KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration, :with_id)) | |
| 409 | + get :process_repository, id: repository.id | |
| 410 | + end | |
| 411 | + it { is_expected.to redirect_to(repository_path(repository.id)) } | |
| 413 | 412 | end |
| 414 | 413 | |
| 415 | 414 | describe 'branches' do |
| ... | ... | @@ -474,4 +473,54 @@ describe RepositoriesController, :type => :controller do |
| 474 | 473 | end |
| 475 | 474 | end |
| 476 | 475 | end |
| 476 | + | |
| 477 | + describe 'notify_push' do | |
| 478 | + context 'with a valid repository' do | |
| 479 | + let(:repository) { FactoryGirl.build(:repository) } | |
| 480 | + | |
| 481 | + before :each do | |
| 482 | + Repository.expects(:find).with(repository.id).raises(KalibroClient::Errors::RecordNotFound) | |
| 483 | + post :notify_push, id: repository.id, format: :json | |
| 484 | + end | |
| 485 | + | |
| 486 | + context 'when the repository is being processed' do | |
| 487 | + before do | |
| 488 | + repository.expects(:last_processing_state).returns('INTERPRETING') | |
| 489 | + repository.expects(:cancel_processing_of_repository).once | |
| 490 | + repository.expects(:process).once | |
| 491 | + end | |
| 492 | + | |
| 493 | + it { is_expected.to respond_with(:accepted) } | |
| 494 | + end | |
| 495 | + | |
| 496 | + context "when the repository's processing resulted in an error" do | |
| 497 | + before do | |
| 498 | + repository.expects(:last_processing_state).returns('ERROR') | |
| 499 | + repository.expects(:process).once | |
| 500 | + end | |
| 501 | + | |
| 502 | + it { is_expected.to respond_with(:ok) } | |
| 503 | + end | |
| 504 | + | |
| 505 | + context 'when the repository is not being processed' do | |
| 506 | + before do | |
| 507 | + repository.expects(:last_processing_state).returns('READY') | |
| 508 | + repository.expects(:process).once | |
| 509 | + end | |
| 510 | + | |
| 511 | + it { is_expected.to respond_with(:ok) } | |
| 512 | + end | |
| 513 | + end | |
| 514 | + | |
| 515 | + context 'with an invalid repository' do | |
| 516 | + let(:repository_id) { 1 } | |
| 517 | + | |
| 518 | + before :each do | |
| 519 | + Repository.expects(:find).with(repository_id).raises(KalibroClient::Errors::RecordNotFound) | |
| 520 | + post :notify_push, id: repository_id, format: :json | |
| 521 | + end | |
| 522 | + | |
| 523 | + it { is_expected.to respond_with(:not_found) } | |
| 524 | + end | |
| 525 | + end | |
| 477 | 526 | end | ... | ... |