diff options
author | Stan Hu <stanhu@gmail.com> | 2017-05-24 20:33:01 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-05-24 20:33:01 -0700 |
commit | 0f1eecd5e6aa7ab4c0a528cfaf0adabea93d978c (patch) | |
tree | 9a9c85627030e3ca9c2f982e954dbdb001c78fc2 | |
parent | 72378f3aa081a45cb782ac91368cb8844c3f992a (diff) | |
download | gitlab-ce-0f1eecd5e6aa7ab4c0a528cfaf0adabea93d978c.tar.gz |
Clear out test to test memorysh-test-spec-fix
-rw-r--r-- | spec/features/boards/boards_spec.rb | 593 |
1 files changed, 1 insertions, 592 deletions
diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb index ba27db23ced..0006d3021fc 100644 --- a/spec/features/boards/boards_spec.rb +++ b/spec/features/boards/boards_spec.rb @@ -1,597 +1,6 @@ require 'rails_helper' describe 'Issue Boards', feature: true, js: true do - include DragTo - - let(:project) { create(:empty_project, :public) } - let(:board) { create(:board, project: project) } - let(:user) { create(:user) } - let!(:user2) { create(:user) } - - before do - project.team << [user, :master] - project.team << [user2, :master] - - login_as(user) - end - - context 'no lists' do - before do - visit namespace_project_board_path(project.namespace, project, board) - wait_for_requests - expect(page).to have_selector('.board', count: 2) - end - - it 'shows blank state' do - expect(page).to have_content('Welcome to your Issue Board!') - end - - it 'shows tooltip on add issues button' do - button = page.find('.filter-dropdown-container button', text: 'Add issues') - - expect(button[:"data-original-title"]).to eq("Please add a list to your board first") - end - - it 'hides the blank state when clicking nevermind button' do - page.within(find('.board-blank-state')) do - click_button("Nevermind, I'll use my own") - end - expect(page).to have_selector('.board', count: 1) - end - - it 'creates default lists' do - lists = ['To Do', 'Doing', 'Closed'] - - page.within(find('.board-blank-state')) do - click_button('Add default lists') - end - wait_for_requests - - expect(page).to have_selector('.board', count: 3) - - page.all('.board').each_with_index do |list, i| - expect(list.find('.board-title')).to have_content(lists[i]) - end - end - end - - context 'with lists' do - let(:milestone) { create(:milestone, project: project) } - - let(:planning) { create(:label, project: project, name: 'Planning', description: 'Test') } - let(:development) { create(:label, project: project, name: 'Development') } - let(:testing) { create(:label, project: project, name: 'Testing') } - let(:bug) { create(:label, project: project, name: 'Bug') } - let!(:backlog) { create(:label, project: project, name: 'Backlog') } - let!(:closed) { create(:label, project: project, name: 'Closed') } - let!(:accepting) { create(:label, project: project, name: 'Accepting Merge Requests') } - - let!(:list1) { create(:list, board: board, label: planning, position: 0) } - let!(:list2) { create(:list, board: board, label: development, position: 1) } - - let!(:confidential_issue) { create(:labeled_issue, :confidential, project: project, author: user, labels: [planning], relative_position: 9) } - let!(:issue1) { create(:labeled_issue, project: project, assignees: [user], labels: [planning], relative_position: 8) } - let!(:issue2) { create(:labeled_issue, project: project, author: user2, labels: [planning], relative_position: 7) } - let!(:issue3) { create(:labeled_issue, project: project, labels: [planning], relative_position: 6) } - let!(:issue4) { create(:labeled_issue, project: project, labels: [planning], relative_position: 5) } - let!(:issue5) { create(:labeled_issue, project: project, labels: [planning], milestone: milestone, relative_position: 4) } - let!(:issue6) { create(:labeled_issue, project: project, labels: [planning, development], relative_position: 3) } - let!(:issue7) { create(:labeled_issue, project: project, labels: [development], relative_position: 2) } - let!(:issue8) { create(:closed_issue, project: project) } - let!(:issue9) { create(:labeled_issue, project: project, labels: [planning, testing, bug, accepting], relative_position: 1) } - - before do - visit namespace_project_board_path(project.namespace, project, board) - - wait_for_requests - - expect(page).to have_selector('.board', count: 3) - expect(find('.board:nth-child(1)')).to have_selector('.card') - expect(find('.board:nth-child(2)')).to have_selector('.card') - expect(find('.board:nth-child(3)')).to have_selector('.card') - end - - it 'shows lists' do - expect(page).to have_selector('.board', count: 3) - end - - it 'shows description tooltip on list title' do - page.within('.board:nth-child(1)') do - expect(find('.board-title span.has-tooltip')[:title]).to eq('Test') - end - end - - it 'shows issues in lists' do - wait_for_board_cards(1, 8) - wait_for_board_cards(2, 2) - end - - it 'shows confidential issues with icon' do - page.within(find('.board', match: :first)) do - expect(page).to have_selector('.confidential-icon', count: 1) - end - end - - it 'search closed list' do - find('.filtered-search').set(issue8.title) - find('.filtered-search').native.send_keys(:enter) - - wait_for_requests - - expect(find('.board:nth-child(1)')).to have_selector('.card', count: 0) - expect(find('.board:nth-child(2)')).to have_selector('.card', count: 0) - expect(find('.board:nth-child(3)')).to have_selector('.card', count: 1) - end - - it 'search list' do - find('.filtered-search').set(issue5.title) - find('.filtered-search').native.send_keys(:enter) - - wait_for_requests - - expect(find('.board:nth-child(1)')).to have_selector('.card', count: 1) - expect(find('.board:nth-child(2)')).to have_selector('.card', count: 0) - expect(find('.board:nth-child(3)')).to have_selector('.card', count: 0) - end - - it 'allows user to delete board' do - page.within(find('.board:nth-child(1)')) do - find('.board-delete').click - end - - wait_for_requests - - expect(page).to have_selector('.board', count: 2) - end - - it 'removes checkmark in new list dropdown after deleting' do - click_button 'Add list' - wait_for_requests - - page.within(find('.board:nth-child(1)')) do - find('.board-delete').click - end - - wait_for_requests - - expect(page).to have_selector('.board', count: 2) - end - - it 'infinite scrolls list' do - 50.times do - create(:labeled_issue, project: project, labels: [planning]) - end - - visit namespace_project_board_path(project.namespace, project, board) - wait_for_requests - - page.within(find('.board', match: :first)) do - expect(page.find('.board-header')).to have_content('58') - expect(page).to have_selector('.card', count: 20) - expect(page).to have_content('Showing 20 of 58 issues') - - evaluate_script("document.querySelectorAll('.board .board-list')[0].scrollTop = document.querySelectorAll('.board .board-list')[0].scrollHeight") - wait_for_requests - - expect(page).to have_selector('.card', count: 40) - expect(page).to have_content('Showing 40 of 58 issues') - - evaluate_script("document.querySelectorAll('.board .board-list')[0].scrollTop = document.querySelectorAll('.board .board-list')[0].scrollHeight") - wait_for_requests - - expect(page).to have_selector('.card', count: 58) - expect(page).to have_content('Showing all issues') - end - end - - context 'closed' do - it 'shows list of closed issues' do - wait_for_board_cards(3, 1) - wait_for_requests - end - - it 'moves issue to closed' do - drag(list_from_index: 0, list_to_index: 2) - - wait_for_board_cards(1, 7) - wait_for_board_cards(2, 2) - wait_for_board_cards(3, 2) - - expect(find('.board:nth-child(1)')).not_to have_content(issue9.title) - expect(find('.board:nth-child(3)')).to have_selector('.card', count: 2) - expect(find('.board:nth-child(3)')).to have_content(issue9.title) - expect(find('.board:nth-child(3)')).not_to have_content(planning.title) - end - - it 'removes all of the same issue to closed' do - drag(list_from_index: 0, list_to_index: 2) - - wait_for_board_cards(1, 7) - wait_for_board_cards(2, 2) - wait_for_board_cards(3, 2) - - expect(find('.board:nth-child(1)')).not_to have_content(issue9.title) - expect(find('.board:nth-child(3)')).to have_content(issue9.title) - expect(find('.board:nth-child(3)')).not_to have_content(planning.title) - end - end - - context 'lists' do - it 'changes position of list' do - drag(list_from_index: 1, list_to_index: 0, selector: '.board-header') - - wait_for_board_cards(1, 2) - wait_for_board_cards(2, 8) - wait_for_board_cards(3, 1) - - expect(find('.board:nth-child(1)')).to have_content(development.title) - expect(find('.board:nth-child(1)')).to have_content(planning.title) - end - - it 'issue moves between lists' do - drag(list_from_index: 0, from_index: 1, list_to_index: 1) - - wait_for_board_cards(1, 7) - wait_for_board_cards(2, 2) - wait_for_board_cards(3, 1) - - expect(find('.board:nth-child(2)')).to have_content(issue6.title) - expect(find('.board:nth-child(2)').all('.card').last).not_to have_content(development.title) - end - - it 'issue moves between lists' do - drag(list_from_index: 1, list_to_index: 0) - - wait_for_board_cards(1, 9) - wait_for_board_cards(2, 1) - wait_for_board_cards(3, 1) - - expect(find('.board:nth-child(1)')).to have_content(issue7.title) - expect(find('.board:nth-child(1)').all('.card').first).not_to have_content(planning.title) - end - - it 'issue moves from closed' do - drag(list_from_index: 2, list_to_index: 1) - - expect(find('.board:nth-child(2)')).to have_content(issue8.title) - - wait_for_board_cards(1, 8) - wait_for_board_cards(2, 3) - wait_for_board_cards(3, 0) - end - - context 'issue card' do - it 'shows assignee' do - page.within(find('.board', match: :first)) do - expect(page).to have_selector('.avatar', count: 1) - end - end - end - - context 'new list' do - it 'shows all labels in new list dropdown' do - click_button 'Add list' - wait_for_requests - - page.within('.dropdown-menu-issues-board-new') do - expect(page).to have_content(planning.title) - expect(page).to have_content(development.title) - expect(page).to have_content(testing.title) - end - end - - it 'creates new list for label' do - click_button 'Add list' - wait_for_requests - - page.within('.dropdown-menu-issues-board-new') do - click_link testing.title - end - - wait_for_requests - - expect(page).to have_selector('.board', count: 4) - end - - it 'creates new list for Backlog label' do - click_button 'Add list' - wait_for_requests - - page.within('.dropdown-menu-issues-board-new') do - click_link backlog.title - end - - wait_for_requests - - expect(page).to have_selector('.board', count: 4) - end - - it 'creates new list for Closed label' do - click_button 'Add list' - wait_for_requests - - page.within('.dropdown-menu-issues-board-new') do - click_link closed.title - end - - wait_for_requests - - expect(page).to have_selector('.board', count: 4) - end - - it 'keeps dropdown open after adding new list' do - click_button 'Add list' - wait_for_requests - - page.within('.dropdown-menu-issues-board-new') do - click_link closed.title - end - - wait_for_requests - - expect(page).to have_css('#js-add-list.open') - end - - it 'creates new list from a new label' do - click_button 'Add list' - - wait_for_requests - - click_link 'Create new label' - - fill_in('new_label_name', with: 'Testing New Label') - - first('.suggest-colors a').click - - click_button 'Create' - - wait_for_requests - wait_for_requests - - expect(page).to have_selector('.board', count: 4) - end - end - end - - context 'filtering' do - it 'filters by author' do - set_filter("author", user2.username) - click_filter_link(user2.username) - submit_filter - - wait_for_requests - wait_for_board_cards(1, 1) - wait_for_empty_boards((2..3)) - end - - it 'filters by assignee' do - set_filter("assignee", user.username) - click_filter_link(user.username) - submit_filter - - wait_for_requests - - wait_for_board_cards(1, 1) - wait_for_empty_boards((2..3)) - end - - it 'filters by milestone' do - set_filter("milestone", "\"#{milestone.title}\"") - click_filter_link(milestone.title) - submit_filter - - wait_for_requests - wait_for_board_cards(1, 1) - wait_for_board_cards(2, 0) - wait_for_board_cards(3, 0) - end - - it 'filters by label' do - set_filter("label", testing.title) - click_filter_link(testing.title) - submit_filter - - wait_for_requests - wait_for_board_cards(1, 1) - wait_for_empty_boards((2..3)) - end - - it 'filters by label with space after reload' do - set_filter("label", "\"#{accepting.title}\"") - click_filter_link(accepting.title) - submit_filter - - # Test after reload - page.evaluate_script 'window.location.reload()' - wait_for_board_cards(1, 1) - wait_for_empty_boards((2..3)) - - wait_for_requests - - page.within(find('.board', match: :first)) do - expect(page.find('.board-header')).to have_content('1') - expect(page).to have_selector('.card', count: 1) - end - - page.within(find('.board:nth-child(2)')) do - expect(page.find('.board-header')).to have_content('0') - expect(page).to have_selector('.card', count: 0) - end - end - - it 'removes filtered labels' do - set_filter("label", testing.title) - click_filter_link(testing.title) - submit_filter - - wait_for_board_cards(1, 1) - - find('.clear-search').click - submit_filter - - wait_for_board_cards(1, 8) - end - - it 'infinite scrolls list with label filter' do - 50.times do - create(:labeled_issue, project: project, labels: [planning, testing]) - end - - set_filter("label", testing.title) - click_filter_link(testing.title) - submit_filter - - wait_for_requests - - page.within(find('.board', match: :first)) do - expect(page.find('.board-header')).to have_content('51') - expect(page).to have_selector('.card', count: 20) - expect(page).to have_content('Showing 20 of 51 issues') - - evaluate_script("document.querySelectorAll('.board .board-list')[0].scrollTop = document.querySelectorAll('.board .board-list')[0].scrollHeight") - - expect(page).to have_selector('.card', count: 40) - expect(page).to have_content('Showing 40 of 51 issues') - - evaluate_script("document.querySelectorAll('.board .board-list')[0].scrollTop = document.querySelectorAll('.board .board-list')[0].scrollHeight") - - expect(page).to have_selector('.card', count: 51) - expect(page).to have_content('Showing all issues') - end - end - - it 'filters by multiple labels' do - set_filter("label", testing.title) - click_filter_link(testing.title) - - set_filter("label", bug.title) - click_filter_link(bug.title) - - submit_filter - - wait_for_requests - - wait_for_board_cards(1, 1) - wait_for_empty_boards((2..3)) - end - - it 'filters by clicking label button on issue' do - page.within(find('.board', match: :first)) do - expect(page).to have_selector('.card', count: 8) - expect(find('.card', match: :first)).to have_content(bug.title) - click_button(bug.title) - wait_for_requests - end - - page.within('.tokens-container') do - expect(page).to have_content(bug.title) - end - - wait_for_requests - - wait_for_board_cards(1, 1) - wait_for_empty_boards((2..3)) - end - - it 'removes label filter by clicking label button on issue' do - page.within(find('.board', match: :first)) do - page.within(find('.card', match: :first)) do - click_button(bug.title) - end - - wait_for_requests - - expect(page).to have_selector('.card', count: 1) - end - - wait_for_requests - end - end - end - - context 'keyboard shortcuts' do - before do - visit namespace_project_board_path(project.namespace, project, board) - wait_for_requests - end - - it 'allows user to use keyboard shortcuts' do - find('.boards-list').native.send_keys('i') - expect(page).to have_content('New Issue') - end - end - - context 'signed out user' do - before do - logout - visit namespace_project_board_path(project.namespace, project, board) - wait_for_requests - end - - it 'displays lists' do - expect(page).to have_selector('.board') - end - - it 'does not show create new list' do - expect(page).not_to have_selector('.js-new-board-list') - end - - it 'does not allow dragging' do - expect(page).not_to have_selector('.user-can-drag') - end - end - - context 'as guest user' do - let(:user_guest) { create(:user) } - - before do - project.team << [user_guest, :guest] - logout - login_as(user_guest) - visit namespace_project_board_path(project.namespace, project, board) - wait_for_requests - end - - it 'does not show create new list' do - expect(page).not_to have_selector('.js-new-board-list') - end - end - - def drag(selector: '.board-list', list_from_index: 0, from_index: 0, to_index: 0, list_to_index: 0) - drag_to(selector: selector, - scrollable: '#board-app', - list_from_index: list_from_index, - from_index: from_index, - to_index: to_index, - list_to_index: list_to_index) - end - - def wait_for_board_cards(board_number, expected_cards) - page.within(find(".board:nth-child(#{board_number})")) do - expect(page.find('.board-header')).to have_content(expected_cards.to_s) - expect(page).to have_selector('.card', count: expected_cards) - end - end - - def wait_for_empty_boards(board_numbers) - board_numbers.each do |board| - wait_for_board_cards(board, 0) - end - end - - def set_filter(type, text) - find('.filtered-search').native.send_keys("#{type}:#{text}") - end - - def submit_filter - find('.filtered-search').native.send_keys(:enter) - end - - def click_filter_link(link_text) - page.within('.filtered-search-box') do - expect(page).to have_button(link_text) - - click_button(link_text) - end + it 'blank test' do end end |