diff --git a/lib/proposals_discussion_plugin/proposal_task.rb b/lib/proposals_discussion_plugin/proposal_task.rb index 7b3ed89..2a620fa 100644 --- a/lib/proposals_discussion_plugin/proposal_task.rb +++ b/lib/proposals_discussion_plugin/proposal_task.rb @@ -1,5 +1,7 @@ class ProposalsDiscussionPlugin::ProposalTask < Task + has_and_belongs_to_many :proposals_discussion_plugin_task_categories + validates_presence_of :requestor_id, :target_id validates_associated :article_object diff --git a/lib/proposals_discussion_plugin/task_category.rb b/lib/proposals_discussion_plugin/task_category.rb new file mode 100644 index 0000000..b3a0880 --- /dev/null +++ b/lib/proposals_discussion_plugin/task_category.rb @@ -0,0 +1,4 @@ +class ProposalsDiscussionPlugin::TaskCategory < Category + + has_and_belongs_to_many :tasks +end diff --git a/test/unit/task_category_test.rb b/test/unit/task_category_test.rb new file mode 100644 index 0000000..7ab16b3 --- /dev/null +++ b/test/unit/task_category_test.rb @@ -0,0 +1,29 @@ +require_relative '../test_helper' + +class TaskCategory < ActiveSupport::TestCase + + def setup + @person = fast_create(Person) + @profile = fast_create(Community) + @discussion = ProposalsDiscussionPlugin::Discussion.create!(:name => 'discussion', :profile => @person, :name => 'discussion') + @proposal = ProposalsDiscussionPlugin::Proposal.create!(:name => 'test', :abstract => 'abstract', :profile => @profile, :parent => @discussion) + end + + attr_reader :person, :profile, :discussion, :proposal + + should 'add a category to a task' do + requestor = fast_create(Person) + task_data = { + :requestor => requestor, + :target => person, + :spam => false + } + + task = Task.create!(task_data) + + category = ProposalsDiscussionPlugin::TaskCategory.create!(name: 'ProposalTest', tasks: [task]) + + assert_equal task.id, category.tasks[0].id + end + +end -- libgit2 0.21.2