13fc0efa57
The current state of group issue boards does not show the "Add issues" button on the UI for users that are reporters of group child projects.
170 lines
4.6 KiB
Ruby
170 lines
4.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe 'Issue Boards new issue', :js do
|
|
let(:project) { create(:project, :public) }
|
|
let(:board) { create(:board, project: project) }
|
|
let!(:list) { create(:list, board: board, position: 0) }
|
|
let(:user) { create(:user) }
|
|
|
|
context 'authorized user' do
|
|
before do
|
|
project.add_maintainer(user)
|
|
|
|
sign_in(user)
|
|
|
|
visit project_board_path(project, board)
|
|
wait_for_requests
|
|
|
|
expect(page).to have_selector('.board', count: 3)
|
|
end
|
|
|
|
it 'displays new issue button' do
|
|
expect(first('.board')).to have_selector('.issue-count-badge-add-button', count: 1)
|
|
end
|
|
|
|
it 'does not display new issue button in closed list' do
|
|
page.within('.board:nth-child(3)') do
|
|
expect(page).not_to have_selector('.issue-count-badge-add-button')
|
|
end
|
|
end
|
|
|
|
it 'shows form when clicking button' do
|
|
page.within(first('.board')) do
|
|
find('.issue-count-badge-add-button').click
|
|
|
|
expect(page).to have_selector('.board-new-issue-form')
|
|
end
|
|
end
|
|
|
|
it 'hides form when clicking cancel' do
|
|
page.within(first('.board')) do
|
|
find('.issue-count-badge-add-button').click
|
|
|
|
expect(page).to have_selector('.board-new-issue-form')
|
|
|
|
click_button 'Cancel'
|
|
|
|
expect(page).not_to have_selector('.board-new-issue-form')
|
|
end
|
|
end
|
|
|
|
it 'creates new issue' do
|
|
page.within(first('.board')) do
|
|
find('.issue-count-badge-add-button').click
|
|
end
|
|
|
|
page.within(first('.board-new-issue-form')) do
|
|
find('.form-control').set('bug')
|
|
click_button 'Submit issue'
|
|
end
|
|
|
|
wait_for_requests
|
|
|
|
page.within(first('.board .issue-count-badge-count')) do
|
|
expect(page).to have_content('1')
|
|
end
|
|
|
|
page.within(first('.board-card')) do
|
|
issue = project.issues.find_by_title('bug')
|
|
|
|
expect(page).to have_content(issue.to_reference)
|
|
expect(page).to have_link(issue.title, href: issue_path(issue))
|
|
end
|
|
end
|
|
|
|
it 'shows sidebar when creating new issue' do
|
|
page.within(first('.board')) do
|
|
find('.issue-count-badge-add-button').click
|
|
end
|
|
|
|
page.within(first('.board-new-issue-form')) do
|
|
find('.form-control').set('bug')
|
|
click_button 'Submit issue'
|
|
end
|
|
|
|
wait_for_requests
|
|
|
|
expect(page).to have_selector('.issue-boards-sidebar')
|
|
end
|
|
|
|
it 'successfuly loads labels to be added to newly created issue' do
|
|
page.within(first('.board')) do
|
|
find('.issue-count-badge-add-button').click
|
|
end
|
|
|
|
page.within(first('.board-new-issue-form')) do
|
|
find('.form-control').set('new issue')
|
|
click_button 'Submit issue'
|
|
end
|
|
|
|
wait_for_requests
|
|
|
|
page.within(first('.issue-boards-sidebar')) do
|
|
find('.labels .edit-link').click
|
|
|
|
wait_for_requests
|
|
|
|
expect(page).to have_selector('.labels .dropdown-content li a')
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'unauthorized user' do
|
|
before do
|
|
visit project_board_path(project, board)
|
|
wait_for_requests
|
|
end
|
|
|
|
it 'displays new issue button in open list' do
|
|
expect(first('.board')).to have_selector('.issue-count-badge-add-button', count: 1)
|
|
end
|
|
|
|
it 'does not display new issue button in label list' do
|
|
page.within('.board:nth-child(2)') do
|
|
expect(page).not_to have_selector('.issue-count-badge-add-button')
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'group boards' do
|
|
set(:group) { create(:group, :public) }
|
|
set(:project) { create(:project, namespace: group) }
|
|
set(:group_board) { create(:board, group: group) }
|
|
set(:list) { create(:list, board: group_board, position: 0) }
|
|
|
|
context 'for unauthorized users' do
|
|
before do
|
|
sign_in(user)
|
|
visit group_board_path(group, group_board)
|
|
wait_for_requests
|
|
end
|
|
|
|
it 'displays new issue button in open list' do
|
|
expect(first('.board')).to have_selector('.issue-count-badge-add-button', count: 1)
|
|
end
|
|
|
|
it 'does not display new issue button in label list' do
|
|
page.within('.board.is-draggable') do
|
|
expect(page).not_to have_selector('.issue-count-badge-add-button')
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'for authorized users' do
|
|
it 'display new issue button in label list' do
|
|
project = create(:project, namespace: group)
|
|
project.add_reporter(user)
|
|
|
|
sign_in(user)
|
|
visit group_board_path(group, group_board)
|
|
wait_for_requests
|
|
|
|
page.within('.board.is-draggable') do
|
|
expect(page).to have_selector('.issue-count-badge-add-button')
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|