summaryrefslogtreecommitdiff
path: root/billing/test/integration/subscription_test.rb
blob: c53131ef4c0ea62b3198f62c485360ca921aec90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require 'test_helper'
require 'fake_braintree'
require 'capybara/rails'

class SubscriptionTest < ActionDispatch::IntegrationTest
  include Warden::Test::Helpers
  include Capybara::DSL

  setup do
    Warden.test_mode!
    @admin = User.find_by_login('admin') || FactoryGirl.create(:user, login: 'admin')
    @customer = FactoryGirl.create(:customer)
    @braintree_customer = FactoryGirl.create(:braintree_customer)
    @customer.braintree_customer_id = @braintree_customer.id
    @customer.save
  end

  teardown do
    Warden.test_reset!
    @admin.destroy
    @customer.destroy
  end

  test "can create subscription" do
    @subscription = FakeBraintree::Subscription.new({:payment_method_token => @braintree_customer.credit_cards.first, :plan_id => '5'}, {:id => @braintree_customer.id, :merchant_id => Braintree::Configuration.merchant_id})
    assert @braintree_customer.credit_cards.first.subscriptions.present?
  end

  test "admin can cancel subscription for another" do
    skip "not sure about testing admin cancelling subscription with fake_braintree"
    login_as @admin
    #visit user_subscriptions_path(@customer.user_id)
    #delete :destroy, :id => @subscription.id
  end

  #test "admin cannot add subscription for another" do
  #end

  #test "authenticated user can cancel own subscription" do
  #end

  #test "user cannot add subscription if they have active one" do
  #end

  #test "user can view own subscriptions"
  #end

  #test "admin can view another user's subscriptions" do
  #end

end