diff options
Diffstat (limited to 'spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb')
-rw-r--r-- | spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb | 80 |
1 files changed, 7 insertions, 73 deletions
diff --git a/spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb b/spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb index 06e2b715e6d..197b0694741 100644 --- a/spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb +++ b/spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb @@ -19,78 +19,12 @@ RSpec.shared_examples 'issues list service' do end end - it 'avoids N+1' do - params = { board_id: board.id } - control = ActiveRecord::QueryRecorder.new { described_class.new(parent, user, params).execute } - - create(:list, board: board) - - expect { described_class.new(parent, user, params).execute }.not_to exceed_query_limit(control) - end - - context 'issues are ordered by priority' do - it 'returns opened issues when list_id is missing' do - params = { board_id: board.id } - - issues = described_class.new(parent, user, params).execute - - expect(issues).to eq [opened_issue2, reopened_issue1, opened_issue1] - end - - it 'returns opened issues when listing issues from Backlog' do - params = { board_id: board.id, id: backlog.id } - - issues = described_class.new(parent, user, params).execute - - expect(issues).to eq [opened_issue2, reopened_issue1, opened_issue1] - end - - it 'returns opened issues that have label list applied when listing issues from a label list' do - params = { board_id: board.id, id: list1.id } - - issues = described_class.new(parent, user, params).execute - - expect(issues).to eq [list1_issue3, list1_issue1, list1_issue2] - end - end - - context 'issues are ordered by date of closing' do - it 'returns closed issues when listing issues from Closed' do - params = { board_id: board.id, id: closed.id } - - issues = described_class.new(parent, user, params).execute - - expect(issues).to eq [closed_issue1, closed_issue2, closed_issue3, closed_issue4, closed_issue5] - end - end - - context 'with list that does not belong to the board' do - it 'raises an error' do - list = create(:list) - service = described_class.new(parent, user, board_id: board.id, id: list.id) - - expect { service.execute }.to raise_error(ActiveRecord::RecordNotFound) - end - end - - context 'with invalid list id' do - it 'raises an error' do - service = described_class.new(parent, user, board_id: board.id, id: nil) - - expect { service.execute }.to raise_error(ActiveRecord::RecordNotFound) - end - end - - context 'when :all_lists is used' do - it 'returns issues from all lists' do - params = { board_id: board.id, all_lists: true } - - issues = described_class.new(parent, user, params).execute - - expected = [opened_issue2, reopened_issue1, opened_issue1, list1_issue1, - list1_issue2, list1_issue3, list2_issue1, closed_issue1, - closed_issue2, closed_issue3, closed_issue4, closed_issue5] - expect(issues).to match_array(expected) - end + it_behaves_like 'items list service' do + let(:backlog_items) { [opened_issue2, reopened_issue1, opened_issue1] } + let(:list1_items) { [list1_issue3, list1_issue1, list1_issue2] } + let(:closed_items) { [closed_issue1, closed_issue2, closed_issue3, closed_issue4, closed_issue5] } + let(:all_items) { backlog_items + list1_items + closed_items + [list2_issue1] } + let(:list_factory) { :list } + let(:new_list) { create(:list, board: board) } end end |