suitepro/plugins/additionals/test/unit/time_entry_test.rb

65 lines
2.4 KiB
Ruby
Executable file

require File.expand_path('../../test_helper', __FILE__)
class TimeEntryTest < Additionals::TestCase
fixtures :issues, :projects, :users, :time_entries,
:members, :roles, :member_roles,
:trackers, :issue_statuses,
:projects_trackers,
:journals, :journal_details,
:issue_categories, :enumerations,
:groups_users,
:enabled_modules
def setup
prepare_tests
end
def teardown
User.current = nil
end
def test_create_time_entry_without_issue
entry = TimeEntry.new(project: projects(:projects_001), user: users(:users_001), activity: TimeEntryActivity.first, hours: 100)
entry.spent_on = '2010-01-01'
assert entry.valid?
assert entry.save
end
def test_create_time_entry_with_open_issue
entry = TimeEntry.new(project: projects(:projects_001), user: users(:users_001), activity: TimeEntryActivity.first, hours: 100)
entry.spent_on = '2010-01-01'
entry.issue = Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 1, subject: 'open issue')
assert_not entry.issue.closed?
assert entry.valid?
assert entry.save
end
def test_create_time_entry_with_closed_issue_without_permission
User.current = nil
issue = Issue.generate(project_id: 1, subject: 'closed issue')
issue.status = IssueStatus.where(is_closed: true).first
issue.save
entry = TimeEntry.new(project: projects(:projects_001), user: users(:users_001), activity: TimeEntryActivity.first, hours: 100)
entry.spent_on = '2010-01-01'
entry.issue = issue
assert entry.issue.closed?
assert_not entry.valid?
assert_not entry.save
end
def test_create_time_entry_with_closed_issue_with_permission
User.current = users(:users_003)
role = Role.create!(name: 'Additionals Tester', permissions: [:log_time_on_closed_issues])
Member.where(user_id: User.current).delete_all
project = projects(:projects_001)
Member.create!(principal: User.current, project_id: project.id, role_ids: [role.id])
entry = TimeEntry.new(project: projects(:projects_001), user: User.current, activity: TimeEntryActivity.first, hours: 100)
entry.spent_on = '2010-01-01'
entry.issue = Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 5, subject: 'closed issue')
assert entry.issue.closed?
assert entry.valid?
assert entry.save
end
end