Sha256: 608e8a5c2ab8f0cebe76991615ac9b1ca0e31e9f7e9ed3ab6aa788eaa6d42080

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

require 'spec_helper'

describe User do
  describe "before_save" do
    before do
      allow_any_instance_of(User).to receive(:subscribe_to_newsletter_list)
      allow_any_instance_of(User).to receive(:unsubscribe_from_newsletter_list)
    end

    context "when user want to receive a newsletter" do
      let(:user) { User.new(newsletter: true) }

      before do
        expect(user).to receive(:subscribe_to_newsletter_list)
      end

      it { user.save! }
    end

    context "when user want to receive a newsletter but he changed they email" do
      let(:user) { User.create!(newsletter: true, email: 'foo@bar.com') }

      before do
        expect(user).to receive(:subscribe_to_newsletter_list)
        expect(user).to receive(:unsubscribe_from_newsletter_list).with('foo@bar.com')
      end

      it { user.update_attributes(email: 'new@email.com') }
    end

    context "when user is a new account and don't want to receive newsletter" do
      let(:user) { User.new(false) }

      before do
        expect(user).to_not receive(:subscribe_to_newsletter_list)
      end

      it { user.save! }
    end

    context "when user want to not receive newsletter anymore" do
      let(:user) { User.create!(newsletter: true, email: 'foo@bar.com') }

      before do
        expect(user).to_not receive(:subscribe_to_newsletter_list)
        expect(user).to receive(:unsubscribe_from_newsletter_list)
      end

      it { user.update_attributes(newsletter: false) }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
catarse_monkeymail-0.1.7 spec/models/catarse_monkeymail/user_spec.rb
catarse_monkeymail-0.1.6 spec/models/catarse_monkeymail/user_spec.rb
catarse_monkeymail-0.1.5 spec/models/catarse_monkeymail/user_spec.rb