From 6704e71377341d6d7d8007a3b64cb3a08015db9d Mon Sep 17 00:00:00 2001 From: evazion Date: Thu, 23 Feb 2017 22:06:12 -0600 Subject: [PATCH] dmails: add tests for automated dmails. --- test/unit/post_disapproval_test.rb | 27 +++++++++++++++++++++++++++ test/unit/user_test.rb | 10 ++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/test/unit/post_disapproval_test.rb b/test/unit/post_disapproval_test.rb index 76c75574a..33331e31a 100644 --- a/test/unit/post_disapproval_test.rb +++ b/test/unit/post_disapproval_test.rb @@ -64,6 +64,33 @@ class PostDisapprovalTest < ActiveSupport::TestCase end end end + + context "when sending dmails" do + setup do + @uploaders = FactoryGirl.create_list(:user, 2) + @disapprovers = FactoryGirl.create_list(:mod_user, 2) + + # 2 uploaders, with 2 uploads each, and 2 disapprovals on each upload. + @uploaders.each do |uploader| + FactoryGirl.create_list(:post, 2, uploader: uploader).each do |post| + FactoryGirl.create(:post_disapproval, post: post, user: @disapprovers[0]) + FactoryGirl.create(:post_disapproval, post: post, user: @disapprovers[1]) + end + end + end + + should "dmail the uploaders" do + bot = FactoryGirl.create(:user) + Danbooru.config.stubs(:system_user).returns(bot) + + assert_difference(["@uploaders[0].dmails.count", "@uploaders[1].dmails.count"], 1) do + PostDisapproval.dmail_messages! + end + + assert(@uploaders[0].dmails.exists?(from: bot, to: @uploaders[0])) + assert(@uploaders[1].dmails.exists?(from: bot, to: @uploaders[1])) + end + end end end end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index a16e817d9..ffb505616 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -13,7 +13,7 @@ class UserTest < ActiveSupport::TestCase CurrentUser.user = nil CurrentUser.ip_addr = nil end - + context "promoting a user" do setup do CurrentUser.user = FactoryGirl.create(:moderator_user) @@ -27,10 +27,16 @@ class UserTest < ActiveSupport::TestCase assert_equal("You have been promoted to a Gold level account from Member.", @user.feedback.last.body) end - should "create a dmail" do + should "send an automated dmail to the user" do + bot = FactoryGirl.create(:user) + Danbooru.config.stubs(:system_user).returns(bot) + assert_difference("Dmail.count", 2) do @user.promote_to!(User::Levels::GOLD) end + + assert(@user.dmails.exists?(from: bot, to: @user, title: "You have been promoted")) + assert(bot.dmails.exists?(from: bot, to: @user, title: "You have been promoted")) end end