Skip to content

Instantly share code, notes, and snippets.

@brandoncordell
Last active August 29, 2015 14:00
Show Gist options
  • Save brandoncordell/11264077 to your computer and use it in GitHub Desktop.
Save brandoncordell/11264077 to your computer and use it in GitHub Desktop.
failing spec
# app/models/credit_card.rb
class CreditCard < ActiveRecord::Base
belongs_to :user
...
def make_default!
old = self.users.credit_cards.where(default: true).first
puts old.default? # returns true
unless old == self
unless old.nil?
old.default = false
old.save
end
puts old.default? # returns false
self.default = true
self.save
end
end
end
# spec/models/credit_card_spec.rb
require 'spec_helper'
describe CreditCard do
... # shoulda matchers
describe '#make_default!' do
context 'with an existing default card' do
let(:owner) { create :user }
let(:existing_default) { create :credit_card, last_4: '9999', default: true, user: owner }
let(:new_default) { create :credit_card, last_4: '1111', default: false, user: owner }
before { new_default.make_default! }
it 'sets a new default' do
expect(new_default.default?).to be true
end
it 'sets the existing default to false' do
expect(existing_default.default?).to be false# this is failing, returning true
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment