Commit 38f5180454d2b225f430442ad5518ad09a6ca38c

Authored by Marcos Pereira
1 parent 55430b7e

adds some tests for notify mentioned users job

app/helpers/mention_helper.rb
1 1 module MentionHelper
2 2 def mention_search_regex
3   - /(?:^\s?|\s)@([^\s?:^\.]+)/m
  3 + /(?:^\s?|\s)@([^\s?:^\.?:^\,]+)/m
4 4 end
5 5  
6 6 def has_mentions? text=""
... ...
test/unit/notify_mentioned_users_job_test.rb 0 → 100644
... ... @@ -0,0 +1,96 @@
  1 +require_relative "../test_helper"
  2 +
  3 +class NotifyMentionedUsersJobTest < ActiveSupport::TestCase
  4 +
  5 + def setup
  6 + @person1 = fast_create(Person, :identifier => "tester")
  7 + @person2 = fast_create(Person, :identifier => "friend")
  8 + @person3 = fast_create(Person, :identifier => "third")
  9 + @person1.add_friend @person2
  10 + @person1.add_friend @person3
  11 +
  12 + process_delayed_job_queue
  13 + ProfileFollower.delete_all
  14 + ActionTrackerNotification.delete_all
  15 + end
  16 +
  17 + should 'create notify mentioned uses job if scrap content has mentioned users' do
  18 + s = Scrap.new
  19 + s.sender = @person1
  20 + s.receiver = @person2
  21 + s.content = "Run @third, run!!!"
  22 + s.save!
  23 +
  24 + action_tracker = ActionTracker::Record.create(:user => @person1, :target => s,
  25 + :verb => 'notify_mentioned_users',
  26 + :params => {"content" => s.content, "url"=>s.receiver.url})
  27 +
  28 + job = NotifyMentionedUsersJob.new(action_tracker.id)
  29 + job.perform
  30 + process_delayed_job_queue
  31 +
  32 + assert_equal 2, ActionTrackerNotification.count
  33 +
  34 + notification = ActionTrackerNotification.find_by profile_id: @person3.id
  35 + assert_equal action_tracker, notification.action_tracker
  36 + end
  37 +
  38 + should 'create notify mentioned uses job if comment body has mentioned users' do
  39 + a = fast_create(Article, :profile_id => @person1.id, :name => "Zombiesss")
  40 +
  41 + comment = Comment.create!(:author => @person1, :body => 'Run @third, run!!!', :source => a)
  42 + action_tracker = ActionTracker::Record.create(:user => @person1, :target => comment,
  43 + :verb => 'notify_mentioned_users',
  44 + :params => {"body" => comment.body, "url" => comment.url})
  45 +
  46 + job = NotifyMentionedUsersJob.new(action_tracker.id)
  47 + job.perform
  48 + process_delayed_job_queue
  49 +
  50 + assert_equal 1, ActionTrackerNotification.count
  51 +
  52 + notification = ActionTrackerNotification.find_by profile_id: @person3.id
  53 + assert_equal action_tracker, notification.action_tracker
  54 + end
  55 +
  56 + should 'not create notify mentioned users job if scrap content has no mentioned users' do
  57 + s = Scrap.new
  58 + s.sender = @person1
  59 + s.receiver = @person2
  60 + s.content = "Run third, run!!!"
  61 + s.save!
  62 +
  63 + action_tracker = ActionTracker::Record.create(:user => @person1, :target => s,
  64 + :verb => 'notify_mentioned_users',
  65 + :params => {"content" => s.content, "url"=>s.receiver.url})
  66 +
  67 + job = NotifyMentionedUsersJob.new(action_tracker.id)
  68 + job.perform
  69 + process_delayed_job_queue
  70 +
  71 + assert_equal 1, ActionTrackerNotification.count
  72 + assert_not_includes ActionTrackerNotification.all.map{|a|a.action_tracker.verb}, "notify_mentioned_users"
  73 + end
  74 +
  75 + should 'not create notify mentioned users job if comment body has no mentioned users' do
  76 + a = fast_create(Article, :profile_id => @person1.id, :name => "Zombiesss")
  77 +
  78 + comment = Comment.create!(:author => @person1, :body => 'Run third, run!!!', :source => a)
  79 + action_tracker = ActionTracker::Record.create(:user => @person1, :target => comment,
  80 + :verb => 'notify_mentioned_users',
  81 + :params => {"body" => comment.body, "url" => comment.url})
  82 +
  83 + job = NotifyMentionedUsersJob.new(action_tracker.id)
  84 + job.perform
  85 + process_delayed_job_queue
  86 +
  87 + assert_empty ActionTrackerNotification.all
  88 + end
  89 +
  90 + should 'not create notification from mention if the mentioned users are also followers' do
  91 + end
  92 +
  93 + should 'not show notification from mention on the authors wall' do
  94 + end
  95 +
  96 +end
... ...