mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 23:15:46 +08:00
b3d769ff4f
update rspec syntax to v3 change syntax to rspec v3 oops. fix typo mailers classes with rspec3 syntax helpers with rspec3 syntax jobs with rspec3 syntax serializers with rspec3 syntax views with rspec3 syntax support to rspec3 syntax category spec with rspec3 syntax
58 lines
1.7 KiB
Ruby
58 lines
1.7 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe EmailLog do
|
|
|
|
it { is_expected.to belong_to :user }
|
|
it { is_expected.to validate_presence_of :to_address }
|
|
it { is_expected.to validate_presence_of :email_type }
|
|
|
|
let(:user) { Fabricate(:user) }
|
|
|
|
context 'after_create' do
|
|
context 'with user' do
|
|
it 'updates the last_emailed_at value for the user' do
|
|
expect {
|
|
user.email_logs.create(email_type: 'blah', to_address: user.email)
|
|
user.reload
|
|
}.to change(user, :last_emailed_at)
|
|
end
|
|
|
|
it "doesn't update last_emailed_at if skipped is true" do
|
|
expect {
|
|
user.email_logs.create(email_type: 'blah', to_address: user.email, skipped: true)
|
|
user.reload
|
|
}.to_not change { user.last_emailed_at }
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '#count_per_day' do
|
|
it "counts sent emails" do
|
|
user.email_logs.create(email_type: 'blah', to_address: user.email)
|
|
user.email_logs.create(email_type: 'blah', to_address: user.email, skipped: true)
|
|
expect(described_class.count_per_day(1.day.ago, Time.now).first[1]).to eq 1
|
|
end
|
|
end
|
|
|
|
describe ".last_sent_email_address" do
|
|
context "when user's email exist in the logs" do
|
|
before do
|
|
user.email_logs.create(email_type: 'signup', to_address: user.email)
|
|
user.email_logs.create(email_type: 'blah', to_address: user.email)
|
|
user.reload
|
|
end
|
|
|
|
it "the user's last email from the log" do
|
|
expect(user.email_logs.last_sent_email_address).to eq(user.email)
|
|
end
|
|
end
|
|
|
|
context "when user's email does not exist email logs" do
|
|
it "returns nil" do
|
|
expect(user.email_logs.last_sent_email_address).to be_nil
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|