diff options
author | Sean McGivern <sean@gitlab.com> | 2016-05-16 10:23:21 +0100 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2016-05-16 10:25:24 +0100 |
commit | e8058bd23100949607ac8c353f482067c0ecd25a (patch) | |
tree | cfba577faab5ca3e2a418609e2a8050592c7f1be /spec | |
parent | 750b2ff0eec67926e737a40c7975cce2b58e27f7 (diff) | |
download | gitlab-ce-e8058bd23100949607ac8c353f482067c0ecd25a.tar.gz |
Return a relation with Postgres17227-upcoming-milestone-is-confusing-when-projects-have-different-milestones
Postgres only needs to select a single column, so that can used as a
sub-query where `Milestone.upcoming_ids_by_projects` is actually used in
`IssuableFinder`.
MySQL needs to select the `due_date` column because it's used in the
`HAVING` clause, so it has to return an array of IDs.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/milestone_spec.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb index 210c5f7eb4f..1e18c788b50 100644 --- a/spec/models/milestone_spec.rb +++ b/spec/models/milestone_spec.rb @@ -221,7 +221,9 @@ describe Milestone, models: true do let!(:past_milestone_project_3) { create(:milestone, project: project_3, due_date: Time.now - 1.day) } - let(:milestone_ids) { Milestone.upcoming_ids_by_projects(projects) } + # The call to `#try` is because this returns a relation with a Postgres DB, + # and an array of IDs with a MySQL DB. + let(:milestone_ids) { Milestone.upcoming_ids_by_projects(projects).map { |id| id.try(:id) || id } } it 'returns the next upcoming open milestone ID for each project' do expect(milestone_ids).to contain_exactly(current_milestone_project_1.id, current_milestone_project_2.id) |