Fetching contributors…
Cannot retrieve contributors at this time
125 lines (96 sloc) 4.6 KB

HEAD (unreleased)

  • Allow configuring API server port (#73)
  • Require Capybara 2.2.0+ so we can configure the API server port
  • FakeBraintree no longer auto-starts when it is required. You must explicitly call FakeBraintree.activate!
  • Allow associating a credit card with a subcription when calling Braintree::Subscription.create (#80)
  • Update addons/discounts when calling Braintree::Subscription.cancel (#84)
  • Support Braintree::CreditCard.delete


  • Add support for Merchant Account API.
  • Update client to 2.9.0 and drop-in to 1.7.0


  • Remove support for 1.9.2, which is EOL'd. fake_braintree now requires Ruby 1.9.3+.
  • Use WEBrick as the Capybara server handler in all cases. Previously we used Thin and fell back to Puma, which caused problems like issue #54.
  • Customers and Subscriptions that were stored with a custom (non-integer) ID can be retrieved (#67)
  • Braintree::Subscription has associated dates thanks to @1st8 (#66):
    • next_billing_date is 1 month from billing period start date
    • billing_day_of_month is the next billing date's mday, but is true to Braintree's exceptional handling of the 31st day of the month
    • billing_period_start_date is either the provided start date or today
    • billing_period_end_date is the day before the next billing date
  • Save discounts amount when adding them to a Subscription (#72)


  • Remove unused i18n gem dependency (#56).
  • Set credit_card.card_type, credit_card.last_4, and credit_card.unique_number_identifier. Ensure credit_card.bin is always set (#47).
  • Support new Braintree credit card API URLs
  • Requires Braintree ~> 2.32 instead of Braintree ~> 2.5.


  • Add missing quote.


  • Add support for Puma server for JRuby support (#59). fake_braintree will try to use Thin first and then Puma.


  • Add support for Braintree::Subscription.retry_charge


  • Add support for Braintree::Address.create
  • Add support for creating a card with an existing billing address (#45)
  • Transactions have a type of "sale" (#46)
  • Require at least Ruby 1.9.2


  • Braintree::Transaction.void updates the existing sale transaction instead of creating a new transaction of type Braintree::Transaction::Status::Voided

  • Preserve redirect_url query parameters for transparent redirect (#36)

  • Transactions can be submitted for settlement by passing an options hash to Braintree::Transaction.create as shown in the Braintree documentation (#31)

  • When a customer is created with a credit card (Braintree::Customer.create(:credit_card => ...), that credit card is set as the customer's default card.


  • Fake refunds via Braintree::Transaction.refund and Braintree::CreditCard.refund.
  • Create credit cards via Braintree::CreditCard.create(:token => token, :number => TEST_CC_NUMBER)
  • Depend on Thin instead of Mongrel (fixes NotImplementedError).


  • Generated transactions (from FakeBraintree.generate_transaction) now include the amount.
  • Braintree::Customer.update will reject updates that contain credit cards that have been marked as a failure in the registry.


  • Braintree::CreditCard.update now works


  • FakeBraintree.{customers, transactions, failures, subscriptions, redirects} are now accessed via FakeBraintree.registry. For example, FakeBraintree.customers is now FakeBraintree.registry.customers
  • FakeBraintree.credit_card_from_token is now FakeBraintree.registry.credit_card_from_token
  • The server code (it intercepts calls to Braintree) now lives in FakeBraintree::Server
  • Braintree::Customer.create will use the provided customer ID instead of overwriting it (#15).
  • Braintree::Subscription.cancel now works


  • Flesh out the README
  • Add support for transparent redirect
  • Add basic support for adding add-ons
  • Add basic support for adding discounts
  • Add support for Braintree::Customer.update
  • Add support for Braintree::Customer.delete
  • Add support for Braintree::Subscription.delete
  • Lots of internal refactorings


  • Add support for Braintree::Customer.find


  • Allow for very basic card verification


  • Ensure FakeBraintree.log_file_path directory exists
  • The FakeBraintree.log_file_path attribute can now be read (it could only be set before)
  • Clear log when FakeBraintree.clear! is called
  • Correctly handle nonexistent subscriptions when using Braintree::Subscription.find