diff options
author | Stan Hu <stanhu@gmail.com> | 2016-09-16 14:08:51 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-09-16 14:08:51 +0000 |
commit | 7afee665b091f2afb89f0fdda90fa46d56d3e341 (patch) | |
tree | 294573b50073268260961f351d1f515de882a773 | |
parent | ebf541e569e2fc3c07f7a05a361594f172296587 (diff) | |
parent | 73269b587cb3542a99a356984b3803d232d4b161 (diff) | |
download | gitlab-ce-7afee665b091f2afb89f0fdda90fa46d56d3e341.tar.gz |
Merge branch '22246-actionview-template-error-undefined-method-each-for-nil-nilclass' into 'master'
MergeRequest#environments now returns an empty array when diff_head_commit is nil
## Does this MR meet the acceptance criteria?
- [x] No CHANGELOG needed for a bug introduced in an RC.
- Tests
- [x] Added for this feature/bug
- [x] All builds are passing
- [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html)
- [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
## What are the relevant issue numbers?
Closes #22246
See merge request !6379
-rw-r--r-- | app/models/merge_request.rb | 2 | ||||
-rw-r--r-- | spec/models/merge_request_spec.rb | 20 |
2 files changed, 15 insertions, 7 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index f7d1253d957..75f48fd4ba5 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -652,7 +652,7 @@ class MergeRequest < ActiveRecord::Base end def environments - return unless diff_head_commit + return [] unless diff_head_commit target_project.environments.select do |environment| environment.includes_commit?(diff_head_commit) diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 3b815ded2d3..06feeb1bbba 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -703,16 +703,24 @@ describe MergeRequest, models: true do describe "#environments" do let(:project) { create(:project) } - let!(:environment) { create(:environment, project: project) } - let!(:environment1) { create(:environment, project: project) } - let!(:environment2) { create(:environment, project: project) } let(:merge_request) { create(:merge_request, source_project: project) } it 'selects deployed environments' do - create(:deployment, environment: environment, sha: project.commit('master').id) - create(:deployment, environment: environment1, sha: project.commit('feature').id) + environments = create_list(:environment, 3, project: project) + create(:deployment, environment: environments.first, sha: project.commit('master').id) + create(:deployment, environment: environments.second, sha: project.commit('feature').id) - expect(merge_request.environments).to eq [environment] + expect(merge_request.environments).to eq [environments.first] + end + + context 'without a diff_head_commit' do + before do + expect(merge_request).to receive(:diff_head_commit).and_return(nil) + end + + it 'returns an empty array' do + expect(merge_request.environments).to be_empty + end end end |