proposal_task_test.rb
5 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
95
96
97
98
99
100
101
102
103
104
105
# encoding: UTF-8
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 'not register duplicate task' do
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => ' é Á e ef KDsk we32UiIÍ?!. '})
assert task.valid?
task = ProposalsDiscussionPlugin::ProposalTask.new(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => 'e a e ef kdsk we32uiii '})
assert !task.valid?, 'duplicated proposal is not valid'
end
should 'allow edition' do
task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => ' é Á e ef KDsk we32UiIÍ?!. '})
task.categories = [fast_create(ProposalsDiscussionPlugin::TaskCategory)]
task.save!
assert task.valid?, "Allow proposal to be edited"
end
should 'simplify abstract' do
assert_equal ProposalsDiscussionPlugin::ProposalTask.simplify(' é Á e ef KDsk we32UiIÍ?!. '), "e a e ef kdsk we32uiii"
end
end