Merge branch 'ce-issue_12619' into 'master'
[Backport] Add feature specs for multiple issue boards for groups See merge request gitlab-org/gitlab-ce!31481
This commit is contained in:
commit
a41ae62c20
2 changed files with 159 additions and 0 deletions
15
spec/features/boards/multiple_boards_spec.rb
Normal file
15
spec/features/boards/multiple_boards_spec.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Multiple Issue Boards', :js do
|
||||
set(:user) { create(:user) }
|
||||
set(:project) { create(:project, :public) }
|
||||
set(:planning) { create(:label, project: project, name: 'Planning') }
|
||||
set(:board) { create(:board, name: 'board1', project: project) }
|
||||
set(:board2) { create(:board, name: 'board2', project: project) }
|
||||
let(:parent) { project }
|
||||
let(:boards_path) { project_boards_path(project) }
|
||||
|
||||
it_behaves_like 'multiple issue boards'
|
||||
end
|
|
@ -0,0 +1,144 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
shared_examples_for 'multiple issue boards' do
|
||||
dropdown_selector = '.js-boards-selector .dropdown-menu'
|
||||
|
||||
context 'authorized user' do
|
||||
before do
|
||||
parent.add_maintainer(user)
|
||||
|
||||
login_as(user)
|
||||
|
||||
visit boards_path
|
||||
wait_for_requests
|
||||
end
|
||||
|
||||
it 'shows current board name' do
|
||||
page.within('.boards-switcher') do
|
||||
expect(page).to have_content(board.name)
|
||||
end
|
||||
end
|
||||
|
||||
it 'shows a list of boards' do
|
||||
click_button board.name
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
expect(page).to have_content(board.name)
|
||||
expect(page).to have_content(board2.name)
|
||||
end
|
||||
end
|
||||
|
||||
it 'switches current board' do
|
||||
click_button board.name
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
click_link board2.name
|
||||
end
|
||||
|
||||
wait_for_requests
|
||||
|
||||
page.within('.boards-switcher') do
|
||||
expect(page).to have_content(board2.name)
|
||||
end
|
||||
end
|
||||
|
||||
it 'creates new board without detailed configuration' do
|
||||
click_button board.name
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
click_button 'Create new board'
|
||||
end
|
||||
|
||||
fill_in 'board-new-name', with: 'This is a new board'
|
||||
click_button 'Create board'
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_button('This is a new board')
|
||||
end
|
||||
|
||||
it 'deletes board' do
|
||||
click_button board.name
|
||||
|
||||
wait_for_requests
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
click_button 'Delete board'
|
||||
end
|
||||
|
||||
expect(page).to have_content('Are you sure you want to delete this board?')
|
||||
click_button 'Delete'
|
||||
|
||||
click_button board2.name
|
||||
page.within(dropdown_selector) do
|
||||
expect(page).not_to have_content(board.name)
|
||||
expect(page).to have_content(board2.name)
|
||||
end
|
||||
end
|
||||
|
||||
it 'adds a list to the none default board' do
|
||||
click_button board.name
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
click_link board2.name
|
||||
end
|
||||
|
||||
wait_for_requests
|
||||
|
||||
page.within('.boards-switcher') do
|
||||
expect(page).to have_content(board2.name)
|
||||
end
|
||||
|
||||
click_button 'Add list'
|
||||
|
||||
wait_for_requests
|
||||
|
||||
page.within '.dropdown-menu-issues-board-new' do
|
||||
click_link planning.title
|
||||
end
|
||||
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_selector('.board', count: 3)
|
||||
|
||||
click_button board2.name
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
click_link board.name
|
||||
end
|
||||
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_selector('.board', count: 2)
|
||||
end
|
||||
|
||||
it 'maintains sidebar state over board switch' do
|
||||
assert_boards_nav_active
|
||||
|
||||
find('.boards-switcher').click
|
||||
wait_for_requests
|
||||
click_link board2.name
|
||||
|
||||
assert_boards_nav_active
|
||||
end
|
||||
end
|
||||
|
||||
context 'unauthorized user' do
|
||||
before do
|
||||
visit boards_path
|
||||
wait_for_requests
|
||||
end
|
||||
|
||||
it 'does not show action links' do
|
||||
click_button board.name
|
||||
|
||||
page.within(dropdown_selector) do
|
||||
expect(page).not_to have_content('Create new board')
|
||||
expect(page).not_to have_content('Delete board')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def assert_boards_nav_active
|
||||
expect(find('.nav-sidebar .active .active')).to have_selector('a', text: 'Boards')
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue