FIX Workload CSV export and tests.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -70,6 +70,15 @@
|
||||
require 'forwardable'
|
||||
|
||||
class WlCsvExporter
|
||||
@@ -32,7 +34,7 @@ class WlCsvExporter
|
||||
return unless data
|
||||
|
||||
klass = data.class
|
||||
- "#{klass}Preparer".constantize.new(data: data, params: params)
|
||||
+ "RedmineWorkload::#{klass}Preparer".constantize.new(data: data, params: params)
|
||||
end
|
||||
|
||||
def planned_line(assignee, workload)
|
||||
@@ -106,3 +108,5 @@ class WlCsvExporter
|
||||
data.time_span.map { |date| format_date(date) }
|
||||
end
|
||||
@@ -288,3 +297,311 @@
|
||||
|
||||
belongs_to :user, inverse_of: :wl_user_data, optional: true
|
||||
self.table_name = 'wl_user_datas'
|
||||
--- a/plugins/redmine_workload/app/helpers/workloads_helper.rb
|
||||
+++ b/plugins/redmine_workload/app/helpers/workloads_helper.rb
|
||||
@@ -88,7 +88,7 @@ module WorkloadsHelper
|
||||
end
|
||||
|
||||
def workloads_to_csv(workload, params)
|
||||
- prepare = WlCsvExporter.new(data: workload, params: params)
|
||||
+ prepare = RedmineWorkload::WlCsvExporter.new(data: workload, params: params)
|
||||
Redmine::Export::CSV.generate(encoding: params[:encoding]) do |csv|
|
||||
csv << prepare.header_fields
|
||||
prepare.group_workload.each do |level, data|
|
||||
--- a/plugins/redmine_workload/test/test_helper.rb
|
||||
+++ b/plugins/redmine_workload/test/test_helper.rb
|
||||
@@ -1,5 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
+require 'mocha/minitest'
|
||||
+
|
||||
# Load the normal Rails helper
|
||||
require File.expand_path('../../../test/test_helper', __dir__)
|
||||
# Load other test helper modules
|
||||
--- a/plugins/redmine_workload/test/unit/group_user_dummy_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/group_user_dummy_test.rb
|
||||
@@ -3,7 +3,7 @@
|
||||
require File.expand_path('../test_helper', __dir__)
|
||||
|
||||
class GroupUserDummyTest < ActiveSupport::TestCase
|
||||
- include WlUserDataFinder
|
||||
+ include RedmineWorkload::WlUserDataFinder
|
||||
include WorkloadsHelper
|
||||
|
||||
fixtures :trackers, :projects, :projects_trackers, :members, :member_roles,
|
||||
--- a/plugins/redmine_workload/test/unit/user_selection_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/user_selection_test.rb
|
||||
@@ -3,7 +3,7 @@
|
||||
require File.expand_path('../test_helper', __dir__)
|
||||
|
||||
class WlUserSelectionTest < ActiveSupport::TestCase
|
||||
- include WlUserDataDefaults
|
||||
+ include RedmineWorkload::WlUserDataDefaults
|
||||
|
||||
fixtures :trackers, :projects, :projects_trackers, :members, :member_roles,
|
||||
:users, :issue_statuses, :enumerations, :roles
|
||||
--- a/plugins/redmine_workload/test/unit/user_workload_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/user_workload_test.rb
|
||||
@@ -5,7 +5,7 @@ require File.expand_path('../test_helper', __dir__)
|
||||
class UserWorkloadTest < ActiveSupport::TestCase
|
||||
include RedmineWorkload::WorkloadObjectHelper
|
||||
include WorkloadsHelper
|
||||
- include WlUserDataDefaults
|
||||
+ include RedmineWorkload::WlUserDataDefaults
|
||||
|
||||
fixtures :trackers, :projects, :projects_trackers, :members, :member_roles,
|
||||
:users, :issue_statuses, :enumerations, :roles
|
||||
--- a/plugins/redmine_workload/test/unit/wl_national_holiday_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/wl_national_holiday_test.rb
|
||||
@@ -22,7 +22,7 @@ class WlNationalHolidayTest < ActiveSupport::TestCase
|
||||
reason: 'Test Holiday')
|
||||
|
||||
assert holiday.save, 'Holiday could not be created or saved!'
|
||||
- assert WlDateTools.holiday?(holiday[:start]), '2017-05-30 should be a holiday!'
|
||||
+ assert RedmineWorkload::WlDateTools.holiday?(holiday[:start]), '2017-05-30 should be a holiday!'
|
||||
assert holiday.destroy, 'Holiday could not be deleted!'
|
||||
end
|
||||
|
||||
@@ -32,8 +32,8 @@ class WlNationalHolidayTest < ActiveSupport::TestCase
|
||||
holiday.save
|
||||
|
||||
assert holiday.save, 'Holiday could not be created or saved!'
|
||||
- assert WlDateTools.holiday?(holiday[:start]), '2017-05-30 should be a holiday!'
|
||||
- assert WlDateTools.holiday?(holiday[:end]), '2017-05-31 should be a holiday!'
|
||||
+ assert RedmineWorkload::WlDateTools.holiday?(holiday[:start]), '2017-05-30 should be a holiday!'
|
||||
+ assert RedmineWorkload::WlDateTools.holiday?(holiday[:end]), '2017-05-31 should be a holiday!'
|
||||
end
|
||||
|
||||
test 'holiday is not workday' do
|
||||
@@ -60,7 +60,7 @@ class WlNationalHolidayTest < ActiveSupport::TestCase
|
||||
holiday1.save
|
||||
holiday2.save
|
||||
|
||||
- result = WlDateTools.working_days_in_time_span(first_day..last_day, user).to_a
|
||||
+ result = RedmineWorkload::WlDateTools.working_days_in_time_span(first_day..last_day, user).to_a
|
||||
|
||||
assert_equal [first_day, last_day - 1], result, 'Result should only bring 2 workdays!'
|
||||
|
||||
--- a/plugins/redmine_workload/test/unit/wl_user_vacation_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/wl_user_vacation_test.rb
|
||||
@@ -42,7 +42,7 @@ class WlUserVacationTest < ActiveSupport::TestCase
|
||||
|
||||
vac1.save
|
||||
|
||||
- assert WlDateTools::vacation?(day, user1), 'User should have Vacation!'
|
||||
+ assert RedmineWorkload::WlDateTools::vacation?(day, user1), 'User should have Vacation!'
|
||||
end
|
||||
|
||||
test 'vacation should not be in working days' do
|
||||
@@ -59,7 +59,7 @@ class WlUserVacationTest < ActiveSupport::TestCase
|
||||
firstDay = Date.new(2017, 5, 29)
|
||||
lastDay = Date.new(2017, 6, 1)
|
||||
|
||||
- result = WlDateTools.working_days_in_time_span(firstDay..lastDay, user1)
|
||||
+ result = RedmineWorkload::WlDateTools.working_days_in_time_span(firstDay..lastDay, user1)
|
||||
|
||||
assert_equal [firstDay, lastDay], result.to_a, 'Result should only bring 2 workdays!'
|
||||
end
|
||||
--- a/plugins/redmine_workload/test/unit/wl_csv_exporter_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/wl_csv_exporter_test.rb
|
||||
@@ -5,7 +5,7 @@ require File.expand_path('../test_helper', __dir__)
|
||||
class WlCsvExporterTest < ActiveSupport::TestCase
|
||||
|
||||
def setup
|
||||
- @exporter = WlCsvExporter.new(data: nil, params: {})
|
||||
+ @exporter = RedmineWorkload::WlCsvExporter.new(data: nil, params: {})
|
||||
end
|
||||
|
||||
test 'should respond to data' do
|
||||
@@ -22,11 +22,11 @@ class WlCsvExporterTest < ActiveSupport::TestCase
|
||||
|
||||
test 'should initialize UserWorkloadPreparer object' do
|
||||
data = UserWorkload.new(assignees: [], time_span: 1..5, today: Time.zone.today)
|
||||
- assert_equal 'UserWorkloadPreparer', @exporter.send(:initialize_data_object, data).class.name
|
||||
+ assert_equal 'RedmineWorkload::UserWorkloadPreparer', @exporter.send(:initialize_data_object, data).class.name
|
||||
end
|
||||
|
||||
test 'should initialize GroupWorkloadPreparer object' do
|
||||
data = GroupWorkload.new(users: WlUserSelection.new, user_workload: {}, time_span: 1..5)
|
||||
- assert_equal 'GroupWorkloadPreparer', @exporter.send(:initialize_data_object, data).class.name
|
||||
+ assert_equal 'RedmineWorkload::GroupWorkloadPreparer', @exporter.send(:initialize_data_object, data).class.name
|
||||
end
|
||||
end
|
||||
--- a/plugins/redmine_workload/test/unit/user_workload_preparer_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/user_workload_preparer_test.rb
|
||||
@@ -6,22 +6,22 @@ class UserWorkloadPreparerTest < ActiveSupport::TestCase
|
||||
include Redmine::I18n
|
||||
|
||||
test 'should respond to user_workload' do
|
||||
- preparer = UserWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::UserWorkloadPreparer.new(data: {}, params: {})
|
||||
assert preparer.respond_to? :user_workload
|
||||
end
|
||||
|
||||
test 'should repsond to time_span' do
|
||||
- preparer = UserWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::UserWorkloadPreparer.new(data: {}, params: {})
|
||||
assert preparer.respond_to? :time_span
|
||||
end
|
||||
|
||||
test 'should repsond to group_workload' do
|
||||
- preparer = UserWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::UserWorkloadPreparer.new(data: {}, params: {})
|
||||
assert preparer.respond_to? :group_workload
|
||||
end
|
||||
|
||||
test 'should return type of assignee' do
|
||||
- preparer = UserWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::UserWorkloadPreparer.new(data: {}, params: {})
|
||||
assert_equal 'User', preparer.type(User.generate!)
|
||||
end
|
||||
|
||||
@@ -30,7 +30,7 @@ class UserWorkloadPreparerTest < ActiveSupport::TestCase
|
||||
user = User.generate!
|
||||
user.groups << group
|
||||
user.create_wl_user_data(main_group: group.id)
|
||||
- preparer = UserWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::UserWorkloadPreparer.new(data: {}, params: {})
|
||||
assert_equal group.name, preparer.main_group(user)
|
||||
end
|
||||
end
|
||||
--- a/plugins/redmine_workload/test/unit/group_workload_preparer_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/group_workload_preparer_test.rb
|
||||
@@ -6,22 +6,22 @@ class GroupWorkloadPreparerTest < ActiveSupport::TestCase
|
||||
include Redmine::I18n
|
||||
|
||||
test 'should respond to user_workload' do
|
||||
- preparer = GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
assert preparer.respond_to? :user_workload
|
||||
end
|
||||
|
||||
test 'should repsond to time_span' do
|
||||
- preparer = GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
assert preparer.respond_to? :time_span
|
||||
end
|
||||
|
||||
test 'should repsond to group_workload' do
|
||||
- preparer = GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
assert preparer.respond_to? :group_workload
|
||||
end
|
||||
|
||||
test 'should return type of assignee' do
|
||||
- preparer = GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
assert_equal l(:label_aggregation), preparer.type(Group.generate!)
|
||||
assert_equal 'User', preparer.type(User.generate!)
|
||||
end
|
||||
@@ -32,7 +32,7 @@ class GroupWorkloadPreparerTest < ActiveSupport::TestCase
|
||||
user = User.generate!
|
||||
user.groups << group
|
||||
user.create_wl_user_data(main_group: group.id)
|
||||
- preparer = GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
+ preparer = RedmineWorkload::GroupWorkloadPreparer.new(data: {}, params: {})
|
||||
assert_equal group.name, preparer.main_group(user)
|
||||
assert_equal dummy.main_group.name, preparer.main_group(dummy)
|
||||
end
|
||||
--- a/plugins/redmine_workload/test/unit/wl_date_tools_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/wl_date_tools_test.rb
|
||||
@@ -14,7 +14,7 @@ class WlDateToolsTest < ActiveSupport::TestCase
|
||||
Setting['plugin_redmine_workload']['general_workday_friday'] = 'checked'
|
||||
|
||||
date = Date.new(2005, 12, 30) # A friday
|
||||
- assert_equal Set.new([date]), WlDateTools.working_days_in_time_span(date..date, @user, no_cache: true)
|
||||
+ assert_equal Set.new([date]), RedmineWorkload::WlDateTools.working_days_in_time_span(date..date, @user, no_cache: true)
|
||||
end
|
||||
|
||||
test 'working_days_in_time_span works if start and end day are equal and a holiday.' do
|
||||
@@ -22,13 +22,13 @@ class WlDateToolsTest < ActiveSupport::TestCase
|
||||
Setting['plugin_redmine_workload']['general_workday_friday'] = ''
|
||||
|
||||
date = Date.new(2005, 12, 30) # A friday
|
||||
- assert_equal Set.new, WlDateTools.working_days_in_time_span(date..date, @user, no_cache: true)
|
||||
+ assert_equal Set.new, RedmineWorkload::WlDateTools.working_days_in_time_span(date..date, @user, no_cache: true)
|
||||
end
|
||||
|
||||
test 'working_days_in_time_span works if start day before end day.' do
|
||||
start_date = Date.new(2005, 12, 30) # A friday
|
||||
end_date = Date.new(2005, 12, 28) # A wednesday
|
||||
- assert_equal Set.new, WlDateTools.working_days_in_time_span(start_date..end_date, @user, no_cache: true)
|
||||
+ assert_equal Set.new, RedmineWorkload::WlDateTools.working_days_in_time_span(start_date..end_date, @user, no_cache: true)
|
||||
end
|
||||
|
||||
test 'working_days_in_time_span works if both days follow each other and are holidays.' do
|
||||
@@ -38,7 +38,7 @@ class WlDateToolsTest < ActiveSupport::TestCase
|
||||
|
||||
start_date = Date.new(2005, 12, 28) # A wednesday
|
||||
end_date = Date.new(2005, 12, 29) # A thursday
|
||||
- assert_equal Set.new, WlDateTools.working_days_in_time_span(start_date..end_date, @user, no_cache: true)
|
||||
+ assert_equal Set.new, RedmineWorkload::WlDateTools.working_days_in_time_span(start_date..end_date, @user, no_cache: true)
|
||||
end
|
||||
|
||||
test 'working_days_in_time_span works if only weekends and mondays are holidays and startday is thursday, endday is tuesday.' do
|
||||
@@ -60,7 +60,7 @@ class WlDateToolsTest < ActiveSupport::TestCase
|
||||
end_date
|
||||
]
|
||||
|
||||
- assert_equal Set.new(expected_result), WlDateTools.working_days_in_time_span(start_date..end_date, @user, no_cache: true)
|
||||
+ assert_equal Set.new(expected_result), RedmineWorkload::WlDateTools.working_days_in_time_span(start_date..end_date, @user, no_cache: true)
|
||||
end
|
||||
|
||||
test 'working_days returns the working days.' do
|
||||
@@ -73,14 +73,14 @@ class WlDateToolsTest < ActiveSupport::TestCase
|
||||
Setting['plugin_redmine_workload']['general_workday_saturday'] = ''
|
||||
Setting['plugin_redmine_workload']['general_workday_sunday'] = ''
|
||||
|
||||
- assert_equal Set.new([2, 3, 4, 5]), WlDateTools.working_days
|
||||
+ assert_equal Set.new([2, 3, 4, 5]), RedmineWorkload::WlDateTools.working_days
|
||||
end
|
||||
|
||||
test 'getMonthsBetween returns [] if last day after first day' do
|
||||
first_day = Date.new(2012, 3, 29)
|
||||
last_day = Date.new(2012, 3, 28)
|
||||
|
||||
- assert_equal [], WlDateTools.months_in_time_span(first_day..last_day)
|
||||
+ assert_equal [], RedmineWorkload::WlDateTools.months_in_time_span(first_day..last_day)
|
||||
end
|
||||
|
||||
test 'getMonthsBetween returns [3] if both days in march 2012 and equal' do
|
||||
@@ -124,14 +124,14 @@ class WlDateToolsTest < ActiveSupport::TestCase
|
||||
user1, user2 = users_defined
|
||||
user1.wl_user_vacations.create(date_from: first_day, date_to: first_day)
|
||||
user2.wl_user_vacations.create(date_from: last_day, date_to: last_day)
|
||||
- assert WlDateTools.vacation?(first_day, user1)
|
||||
- assert_not WlDateTools.vacation?(first_day, user2)
|
||||
+ assert RedmineWorkload::WlDateTools.vacation?(first_day, user1)
|
||||
+ assert_not RedmineWorkload::WlDateTools.vacation?(first_day, user2)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def months_numbers_in_time_span(first_day, last_day)
|
||||
- WlDateTools.months_in_time_span(first_day..last_day).map do |span|
|
||||
+ RedmineWorkload::WlDateTools.months_in_time_span(first_day..last_day).map do |span|
|
||||
[span[:first_day].month, span[:last_day].month]
|
||||
end
|
||||
end
|
||||
--- a/plugins/redmine_workload/test/unit/lib/wl_issue_query_test.rb
|
||||
+++ b/plugins/redmine_workload/test/unit/lib/wl_issue_query_test.rb
|
||||
@@ -4,7 +4,7 @@ require File.expand_path('../../test_helper', __dir__)
|
||||
|
||||
class WlIssueQueryTest < ActiveSupport::TestCase
|
||||
include RedmineWorkload::WorkloadObjectHelper
|
||||
- include WlIssueQuery
|
||||
+ include RedmineWorkload::WlIssueQuery
|
||||
|
||||
fixtures :trackers, :projects, :projects_trackers, :members, :member_roles,
|
||||
:users, :issue_statuses, :enumerations, :roles
|
||||
--- a/plugins/redmine_workload/test/functional/wl_user_datas_controller_test.rb
|
||||
+++ b/plugins/redmine_workload/test/functional/wl_user_datas_controller_test.rb
|
||||
@@ -4,7 +4,7 @@ require File.expand_path('../test_helper', __dir__)
|
||||
|
||||
class WlUserDatasControllerTest < ActionDispatch::IntegrationTest
|
||||
include RedmineWorkload::AuthenticateUser
|
||||
- include WlUserDataFinder
|
||||
+ include RedmineWorkload::WlUserDataFinder
|
||||
|
||||
fixtures :trackers, :projects, :projects_trackers, :members, :member_roles,
|
||||
:users, :issue_statuses, :enumerations, :roles
|
||||
|
||||
Reference in New Issue
Block a user