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/table/group_headers_spec.rb

56 lines
1.9 KiB

require 'spec_helper'
describe 'Work Package table group headers', js: true do
let(:user) { FactoryGirl.create :admin }
let(:project) { FactoryGirl.create(:project) }
let(:category) { FactoryGirl.create :category, project: project, name: 'Foo' }
let(:category2) { FactoryGirl.create :category, project: project, name: 'Bar' }
let!(:wp_cat1) { FactoryGirl.create(:work_package, project: project, category: category) }
let!(:wp_cat2) { FactoryGirl.create(:work_package, project: project, category: category2) }
let!(:wp_none) { FactoryGirl.create(:work_package, project: project) }
let(:wp_table) { Pages::WorkPackagesTable.new(project) }
let!(:query) do
query = FactoryGirl.build(:query, user: user, project: project)
query.column_names = ['subject', 'category']
query.save!
query
end
before do
login_as(user)
wp_table.visit_query(query)
wp_table.expect_work_package_listed(wp_cat1)
wp_table.expect_work_package_listed(wp_cat2)
wp_table.expect_work_package_listed(wp_none)
end
it 'shows group headers for group by category' do
# Group by category
wp_table.click_setting_item 'Group by ...'
select 'Category', from: 'selected_columns_new'
click_button 'Apply'
# Expect table to be grouped as WP created above
expect(page).to have_selector('tr.group .count', count: 3)
expect(page).to have_selector('tr.group div', text: 'Foo (1)')
expect(page).to have_selector('tr.group div', text: 'Bar (1)')
expect(page).to have_selector('tr.group div', text: '- (1)')
# Update category of wp_none
cat = wp_table.edit_field(wp_none, :category)
cat.activate!
cat.set_value 'Foo'
loading_indicator_saveguard
# Expect changed groups
expect(page).to have_selector('tr.group .count', count: 2)
expect(page).to have_selector('tr.group div', text: 'Foo (2)')
expect(page).to have_selector('tr.group div', text: 'Bar (1)')
end
end