Skip to content

Commit 8d8b839

Browse files
authored
Merge pull request #1872 from codetriage/schneems/fix-inactive-emails
Fix errors in inactive emails
2 parents ee7f871 + e81a7fd commit 8d8b839

4 files changed

Lines changed: 33 additions & 8 deletions

File tree

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# frozen_string_literal: true
22

33
class BackgroundInactiveEmailJob < UserBasedJob
4-
def perform(user, repos_by_need_ids:)
4+
def perform(user, min_issue_count:, min_subscriber_count:)
55
return false if user.repo_subscriptions.present?
66

7-
UserMailer.poke_inactive(user: user, repos_by_need_ids: repos_by_need_ids).deliver_now
7+
UserMailer.poke_inactive(user: user, min_issue_count: min_issue_count, min_subscriber_count: min_subscriber_count).deliver_now
88
end
99
end

app/mailers/user_mailer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def poke_inactive(user:, min_issue_count:, min_subscriber_count:)
8080
languages = @user.favorite_languages&.sort || []
8181

8282
query = Repo.active
83-
query = repo.where(language: languages) if !languages.empty?
83+
query = query.where(language: languages) if !languages.empty?
8484
query = query
8585
.where("issues_count >= ?", min_issue_count)
8686
.where("subscribers_count >= ?", min_subscriber_count)

lib/tasks/schedule.rake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ namespace :schedule do
5656
next unless Date.today.tuesday?
5757

5858
# TODO Ensure not archived, ensure not removed from github
59-
perc_90_issues_count = ActiveRecord::Base.connection.select_one("SELECT PERCENTILE_CONT(0.90) WITHIN GROUP(ORDER BY issues_count) FROM repos;")["percentile_cont"]
60-
perc_90_subscriber_count = ActiveRecord::Base.connection.select_one("SELECT PERCENTILE_CONT(0.90) WITHIN GROUP(ORDER BY subscribers_count) FROM repos;")["percentile_cont"]
59+
perc_90_issues_count = ActiveRecord::Base.connection.select_one("SELECT PERCENTILE_CONT(0.90) WITHIN GROUP(ORDER BY issues_count) FROM repos;")["percentile_cont"].to_i
60+
perc_90_subscriber_count = ActiveRecord::Base.connection.select_one("SELECT PERCENTILE_CONT(0.90) WITHIN GROUP(ORDER BY subscribers_count) FROM repos;")["percentile_cont"].to_i
6161

6262
User.inactive.find_each(batch_size: 100) do |user|
6363
BackgroundInactiveEmailJob.perform_later(

test/jobs/background_inactive_email_job_test.rb

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,32 @@
33
require "test_helper"
44

55
class BackgroundInactiveEmailJobTest < ActiveJob::TestCase
6-
# test "the truth" do
7-
# assert true
8-
# end
6+
include ActionMailer::TestHelper
7+
8+
test "sends poke_inactive email for user without subscriptions" do
9+
user = users(:mockstar)
10+
assert_predicate user.repo_subscriptions, :blank?
11+
12+
assert_emails 1 do
13+
BackgroundInactiveEmailJob.perform_now(
14+
user,
15+
min_issue_count: 0,
16+
min_subscriber_count: 0
17+
)
18+
end
19+
end
20+
21+
test "does not send email when user has active repo subscriptions" do
22+
user = users(:schneems)
23+
assert_predicate user.repo_subscriptions, :present?
24+
25+
assert_emails 0 do
26+
result = BackgroundInactiveEmailJob.perform_now(
27+
user,
28+
min_issue_count: 0,
29+
min_subscriber_count: 0
30+
)
31+
assert_equal false, result
32+
end
33+
end
934
end

0 commit comments

Comments
 (0)