Merge pull request #1329 from amiedes/iss-1192-test

Track email digests
This commit is contained in:
Raimond Garcia
2017-04-12 12:06:05 +02:00
committed by GitHub
5 changed files with 29 additions and 2 deletions

View File

@@ -0,0 +1,5 @@
class AddFailedEmailDigestsCountToUsers < ActiveRecord::Migration
def change
add_column :users, :failed_email_digests_count, :integer, default: 0
end
end

View File

@@ -242,6 +242,7 @@ ActiveRecord::Schema.define(version: 20170324101716) do
add_index "debates", ["cached_votes_total"], name: "index_debates_on_cached_votes_total", using: :btree
add_index "debates", ["cached_votes_up"], name: "index_debates_on_cached_votes_up", using: :btree
add_index "debates", ["confidence_score"], name: "index_debates_on_confidence_score", using: :btree
add_index "debates", ["description"], name: "index_debates_on_description", using: :btree
add_index "debates", ["geozone_id"], name: "index_debates_on_geozone_id", using: :btree
add_index "debates", ["hidden_at"], name: "index_debates_on_hidden_at", using: :btree
add_index "debates", ["hot_score"], name: "index_debates_on_hot_score", using: :btree
@@ -593,6 +594,7 @@ ActiveRecord::Schema.define(version: 20170324101716) do
add_index "proposals", ["author_id"], name: "index_proposals_on_author_id", using: :btree
add_index "proposals", ["cached_votes_up"], name: "index_proposals_on_cached_votes_up", using: :btree
add_index "proposals", ["confidence_score"], name: "index_proposals_on_confidence_score", using: :btree
add_index "proposals", ["description"], name: "index_proposals_on_description", using: :btree
add_index "proposals", ["geozone_id"], name: "index_proposals_on_geozone_id", using: :btree
add_index "proposals", ["hidden_at"], name: "index_proposals_on_hidden_at", using: :btree
add_index "proposals", ["hot_score"], name: "index_proposals_on_hot_score", using: :btree
@@ -802,6 +804,7 @@ ActiveRecord::Schema.define(version: 20170324101716) do
t.boolean "official_position_badge", default: false
t.datetime "password_changed_at", default: '2016-11-23 10:59:20', null: false
t.boolean "created_from_signature", default: false
t.integer "failed_email_digests_count", default: 0
t.text "former_users_data_log", default: ""
end

View File

@@ -22,6 +22,7 @@ class EmailDigest
def mark_as_emailed
notifications.update_all(emailed_at: Time.current)
user.update(failed_email_digests_count: 0)
end
end

View File

@@ -4,8 +4,13 @@ namespace :emails do
task digest: :environment do
User.email_digest.find_each do |user|
email_digest = EmailDigest.new(user)
email_digest.deliver
email_digest.mark_as_emailed
begin
email_digest.deliver
email_digest.mark_as_emailed
rescue
user.increment_counter(:failed_email_digests_count)
user.save
end
end
end

View File

@@ -122,6 +122,19 @@ describe EmailDigest do
expect(notification3.emailed_at).to_not be
end
it "resets the failed_email_digests_count flag" do
user1 = create(:user, failed_email_digests_count: 0)
user2 = create(:user, failed_email_digests_count: 3)
email_digest_1 = EmailDigest.new(user1)
email_digest_2 = EmailDigest.new(user2)
email_digest_1.mark_as_emailed
email_digest_2.mark_as_emailed
expect(user1.failed_email_digests_count).to eq(0)
expect(user2.failed_email_digests_count).to eq(0)
end
end
end