OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/spec/features/work_packages/details/details_relations_spec.rb

91 lines
2.7 KiB

require 'spec_helper'
describe 'Work package relations tab', js: true, selenium: true do
let(:user) { FactoryGirl.create :admin }
9 years ago
let(:project) { FactoryGirl.create :project }
let(:work_package) { FactoryGirl.create(:work_package, project: project) }
let(:work_packages_page) { ::Pages::SplitWorkPackage.new(work_package) }
before do
login_as user
work_packages_page.visit_tab!('relations')
loading_indicator_saveguard
work_packages_page.expect_subject
end
describe 'no relations' do
it 'shows empty relation tabs' do
%w(parent children relates duplicates
duplicated blocks blocked precedes follows).each do |rel|
within ".relation.#{rel}" do
find(".#{rel}-toggle-link").click
expect(page).to have_selector('.content', text: 'No relation exists')
end
end
end
end
describe 'with parent' do
let(:parent) { FactoryGirl.create(:work_package) }
let(:work_package) { FactoryGirl.create(:work_package, parent: parent) }
it 'shows the parent relationship expanded' do
link = find('.parent .work_package',
text: "##{parent.id} #{parent.type}: #{parent.subject}")
link.click
parent_wp_page = ::Pages::FullWorkPackage.new(parent)
parent_wp_page.expect_subject
end
end
describe 'create parent relationship' do
9 years ago
let(:parent) { FactoryGirl.create(:work_package, project: project) }
include_context 'ui-select helpers'
9 years ago
let(:user_role) do
FactoryGirl.create :role, permissions: permissions
end
let(:user) do
FactoryGirl.create :user,
member_in_project: project,
member_through_role: user_role
end
context 'with insufficient permissions' do
9 years ago
let(:permissions) { %i(view_work_packages edit_work_packages) }
9 years ago
it 'does not allow editing the parent' do
within '.relation.parent' do
# Expand parent
find('.parent-toggle-link').click
9 years ago
expect(page).to have_no_selector('.choice--select')
expect(page).to have_selector('.content', text: I18n.t('js.relations.empty'))
9 years ago
end
end
end
context 'with permissions' do
9 years ago
let(:permissions) { %i(view_work_packages manage_subtasks) }
9 years ago
it 'shows the parent relationship expanded' do
within '.relation.parent' do
# Expand parent
find('.parent-toggle-link').click
form = find('.choice--select')
ui_select_choose(form, parent.subject)
click_button 'Change parent'
expect(page).to have_selector('.parent .work_package',
text: "##{parent.id} #{parent.type}: #{parent.subject}")
end
end
end
end
end