# frozen_string_literal: true require 'rails_helper' describe Jobs::ActivationReminderEmails do before { Jobs.run_immediately! } # should be between 2 and 3 days let(:created_at) { 50.hours.ago } it 'should email inactive users' do user = Fabricate(:user, active: false, created_at: created_at) expect { described_class.new.execute({}) } .to change { ActionMailer::Base.deliveries.size }.by(1) .and change { user.email_tokens.count }.by(1) expect(user.custom_fields['activation_reminder']).to eq("t") expect { described_class.new.execute({}) }.to change { ActionMailer::Base.deliveries.size }.by(0) user.activate expect(user.reload.custom_fields['activation_reminder']).to eq(nil) end it 'should not email active users' do user = Fabricate(:user, active: true, created_at: created_at) expect { described_class.new.execute({}) } .to change { ActionMailer::Base.deliveries.size }.by(0) .and change { user.email_tokens.count }.by(0) end it 'should not email staged users' do user = Fabricate(:user, active: false, staged: true, created_at: created_at) expect { described_class.new.execute({}) } .to change { ActionMailer::Base.deliveries.size }.by(0) .and change { user.email_tokens.count }.by(0) end end