proposal_task_test.rb
4.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
require_relative '../test_helper'
class ProposalTaskTest < ActiveSupport::TestCase
attr_reader :profile, :person, :discussion
def setup
@person = fast_create(Person)
@profile = fast_create(Community)
@discussion = ProposalsDiscussionPlugin::Discussion.create!(:name => 'discussion', :profile => person, :allow_topics => false)
end
should 'check the source of a proposal in a task' do
topic = fast_create(ProposalsDiscussionPlugin::Topic, :parent_id => discussion.id)
task = ProposalsDiscussionPlugin::ProposalTask.new(:article_parent_id => topic.id)
assert_equal topic.name, task.proposal_source
end
should 'assign proposal task to member with view_task permission' do
role1 = Role.create!(:name => 'profile_role2', :permissions => ['perform_task'], :environment => Environment.default)
role2 = Role.create!(:name => 'profile_role', :permissions => ['view_tasks'], :environment => Environment.default)
person1 = fast_create(Person)
person1.define_roles([role1], profile)
person2 = fast_create(Person)
person2.define_roles([role2], profile)
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => 'proposal 1'})
assert_equal person2, task.responsible
end
should 'assign proposal task to member with perform_task permission after flag as accepted' do
role1 = Role.create!(:name => 'profile_role2', :permissions => ['perform_task'], :environment => Environment.default)
role2 = Role.create!(:name => 'profile_role', :permissions => ['view_tasks'], :environment => Environment.default)
person1 = fast_create(Person)
person1.define_roles([role1], profile)
person2 = fast_create(Person)
person2.define_roles([role2], profile)
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => 'proposal 1'})
task.categories = [fast_create(ProposalsDiscussionPlugin::TaskCategory)]
task.flag_accept_proposal(person2)
assert_equal person1, task.responsible
end
should 'assign proposal task to member with perform_task permission after flag as rejected' do
role1 = Role.create!(:name => 'profile_role2', :permissions => ['perform_task'], :environment => Environment.default)
role2 = Role.create!(:name => 'profile_role', :permissions => ['view_tasks'], :environment => Environment.default)
person1 = fast_create(Person)
person1.define_roles([role1], profile)
person2 = fast_create(Person)
person2.define_roles([role2], profile)
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => 'proposal 1'})
task.categories = [fast_create(ProposalsDiscussionPlugin::TaskCategory)]
task.flag_reject_proposal(person2)
assert_equal person1, task.responsible
end
should 'not change assignment when update the task responsible' do
role1 = Role.create!(:name => 'profile_role2', :permissions => ['perform_task'], :environment => Environment.default)
role2 = Role.create!(:name => 'profile_role', :permissions => ['view_tasks'], :environment => Environment.default)
person1 = fast_create(Person)
person1.define_roles([role1], profile)
person2 = fast_create(Person)
person2.define_roles([role2], profile)
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => 'proposal 1'})
task.categories = [fast_create(ProposalsDiscussionPlugin::TaskCategory)]
task.flag_accept_proposal(person2)
assert_equal person1, task.responsible
task.responsible = person2
task.save!
assert_equal person2, task.responsible
end
should 'do not fail on task information with integer as abstract' do
task = ProposalsDiscussionPlugin::ProposalTask.new
task.expects(:abstract).returns(49)
assert task.information.present?
end
should 'create a proposal with category when accept a task' do
c1 = fast_create(Category)
discussion.categories << c1
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article_parent_id => @discussion.id, :article => {:name => 'proposal 1', :abstract => 'proposal 1', :type => "ProposalsDiscussionPlugin::Proposal"})
task.perform
assert_equal [c1], ProposalsDiscussionPlugin::Proposal.last.categories
end
end