iugusdk 1.0.0.alpha.3 → 1.0.0.alpha.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/app/controllers/iugu/account_controller.rb +14 -5
  2. data/app/controllers/iugu/pricing_controller.rb +8 -0
  3. data/app/controllers/iugu/profile_controller.rb +15 -2
  4. data/app/controllers/iugu/registrations_controller.rb +8 -0
  5. data/app/controllers/iugu/sessions_controller.rb +8 -0
  6. data/app/models/account.rb +1 -13
  7. data/app/models/api_token.rb +32 -0
  8. data/app/models/user.rb +25 -0
  9. data/app/views/iugu/pricing/index.html.haml +14 -0
  10. data/app/views/iugu/settings/account.html.haml +21 -6
  11. data/app/views/iugu/settings/profile.html.haml +11 -1
  12. data/config/locales/iugu.en.yml +5 -1
  13. data/config/locales/iugu.pt-BR.yml +5 -1
  14. data/config/routes.rb +3 -0
  15. data/db/migrate/20121023113304_create_api_token.rb +15 -0
  16. data/lib/iugusdk/engine.rb +8 -0
  17. data/lib/iugusdk/iugusdk_base_controller.rb +16 -7
  18. data/lib/iugusdk/root_tenancy_url.rb +3 -3
  19. data/lib/iugusdk/session_parameter_middleware.rb +15 -0
  20. data/lib/iugusdk/version.rb +1 -1
  21. data/lib/iugusdk.rb +17 -0
  22. data/spec/controllers/account_controller_spec.rb +19 -8
  23. data/spec/controllers/pricing_controller_spec.rb +16 -0
  24. data/spec/controllers/profile_controller_spec.rb +13 -4
  25. data/spec/controllers/registration_controller_spec.rb +15 -1
  26. data/spec/dummy/config/application.rb +4 -1
  27. data/spec/dummy/config/initializers/iugusdk.rb +2 -0
  28. data/spec/dummy/db/migrate/20121108115535_remove_api_token_from_account.rb +7 -0
  29. data/spec/dummy/db/schema.rb +11 -1
  30. data/spec/dummy/log/development.log +2967 -0
  31. data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  32. data/spec/dummy/tmp/cache/assets/CF1/A70/sprockets%2F368a631d9662bcc4891c91f739b7be37 +0 -0
  33. data/spec/dummy/tmp/cache/assets/CF6/A50/sprockets%2Ff434c1ed5d55916f790cf698832f76b1 +0 -0
  34. data/spec/dummy/tmp/cache/assets/CF9/650/sprockets%2F5767184d0e9646ef1aec88c89a47b761 +0 -0
  35. data/spec/dummy/tmp/cache/assets/D12/D70/sprockets%2F9c37ed72a191cf588665dcb621f401c3 +0 -0
  36. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  37. data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  38. data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  39. data/spec/dummy/tmp/cache/assets/D77/920/sprockets%2Faf0e746c541e6cf4540db92c87da579c +0 -0
  40. data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  41. data/spec/dummy/tmp/cache/assets/DDC/410/sprockets%2F91b38c54838c97f0815ebf8aabddfc4e +0 -0
  42. data/spec/dummy/tmp/cache/assets/E01/940/sprockets%2F5fe65d209f8e909c4f3b080fceacac1e +0 -0
  43. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  44. data/spec/dummy/tmp/cache/sass/e35248e21fc26dee07372931d609e6a972a6818c/default.sassc +0 -0
  45. data/spec/fabricators/api_token_fabricator.rb +5 -0
  46. data/spec/models/account_spec.rb +0 -33
  47. data/spec/models/api_token_spec.rb +23 -0
  48. data/spec/models/user_spec.rb +9 -0
  49. data/spec/requests/account_spec.rb +19 -5
  50. data/spec/requests/user_spec.rb +18 -1
  51. metadata +289 -416
@@ -0,0 +1,5 @@
1
+ Fabricator(:api_token) do
2
+ description 'api token'
3
+ api_type 'test'
4
+ tokenable { Fabricate(:account) }
5
+ end
@@ -9,7 +9,6 @@ describe Account do
9
9
  it { should have_many(:account_users) }
10
10
  it { should have_many(:users).through(:account_users) }
11
11
  it { should validate_uniqueness_of(:subdomain) }
12
- it { should validate_uniqueness_of(:api_token) }
13
12
 
14
13
  it "should return true for a valid user of account" do
15
14
  @user = Fabricate(:user, :email => "me@me.com")
@@ -23,11 +22,6 @@ describe Account do
23
22
  @account = Fabricate.build(:account) { subdomain "subdominio" }.should_not be_valid
24
23
  end
25
24
 
26
- it 'should set api_token before create' do
27
- @account = Fabricate(:account)
28
- @account.api_token.should_not be_nil
29
- end
30
-
31
25
  it 'should set subdomain before create' do
32
26
  @account = Fabricate(:account)
33
27
  @account.reload
@@ -166,31 +160,4 @@ describe Account do
166
160
  Account.get_from_domain("notused.domain.test").should be_nil
167
161
  end
168
162
  end
169
-
170
- context "generate_api_token" do
171
- before(:each) do
172
- @account = Fabricate(:account)
173
- end
174
-
175
- it 'should return a new token' do
176
- old_token = @account.api_token
177
- @account.send(:generate_api_token).should_not == old_token
178
- end
179
-
180
- end
181
-
182
- context "update_api_token" do
183
- before(:each) do
184
- @account = Fabricate(:account)
185
- end
186
-
187
- it 'should replace api_token' do
188
- old_token = @account.api_token
189
- @account.update_api_token
190
- @account.api_token.should_not == old_token
191
- end
192
-
193
- end
194
-
195
-
196
163
  end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe ApiToken do
4
+ before(:each) do
5
+ IuguSDK::account_api_tokens = [ 'test', 'live' ]
6
+ Fabricate(:api_token)
7
+ end
8
+
9
+ it { should validate_uniqueness_of(:token) }
10
+ it { should validate_presence_of(:description) }
11
+ it { should validate_presence_of(:tokenable) }
12
+
13
+ it 'description should be unique for each tokenable record' do
14
+ @acc = Fabricate(:account)
15
+ @acc.tokens.create(description: "token 1", api_type: 'test').should be_valid
16
+ @acc.tokens.create(description: "token 1", api_type: 'live').should_not be_valid
17
+ end
18
+
19
+ it 'api_type should be supported' do
20
+ Fabricate.build(:api_token, api_type: 'not supported').should_not be_valid
21
+ end
22
+
23
+ end
@@ -9,6 +9,15 @@ describe User do
9
9
  it { should have_many(:social_accounts) }
10
10
  it { should validate_presence_of(:email) }
11
11
 
12
+ context "when enable_user_api = true" do
13
+ before(:each) { IuguSDK::enable_user_api = true }
14
+
15
+ it 'should have a token' do
16
+ Fabricate(:user).token.should_not be_nil
17
+ end
18
+
19
+ end
20
+
12
21
  context "after create" do
13
22
  #it 'should create an account with subdomain' do
14
23
  #@user = Fabricate(:user) do
@@ -64,6 +64,8 @@ describe 'accounts settings view' do
64
64
  IuguSDK::enable_custom_domain = true
65
65
  IuguSDK::enable_account_alias = true
66
66
  IuguSDK::enable_account_api = true
67
+ IuguSDK::account_api_tokens = ['test', 'live']
68
+ IuguSDK::enable_account_cancel = true
67
69
  end
68
70
 
69
71
  context "when enable_multiple_users_per_account == true" do
@@ -103,14 +105,28 @@ describe 'accounts settings view' do
103
105
  end
104
106
  it { page.should have_link I18n.t("iugu.manage") }
105
107
 
106
- it { page.should have_link I18n.t("iugu.cancel_account") }
107
-
108
108
  it { page.should have_content @target_account.api_token }
109
109
 
110
- it { page.should have_link I18n.t("iugu.generate_new_token") }
110
+ it { page.should have_content I18n.t("iugu.api_tokens") }
111
111
 
112
112
  it { page.should have_field 'account[name]' }
113
113
 
114
+ context "when enable_account_cancel == true" do
115
+ before(:each) do
116
+ IuguSDK::enable_account_cancel = true
117
+ visit account_view_path(@target_account.id)
118
+ end
119
+ it { page.should have_link I18n.t("iugu.cancel_account") }
120
+ end
121
+
122
+ context "when enable_account_cancel == false" do
123
+ before(:each) do
124
+ IuguSDK::enable_account_cancel = false
125
+ visit account_view_path(@target_account.id)
126
+ end
127
+ it { page.should_not have_link I18n.t("iugu.cancel_account") }
128
+ end
129
+
114
130
  context "when account is being canceled" do
115
131
  context "if delay_account_exclusion == 0" do
116
132
  before(:each) do
@@ -148,8 +164,6 @@ describe 'accounts settings view' do
148
164
 
149
165
  it { page.should_not have_link I18n.t("iugu.cancel_account") }
150
166
 
151
- it { page.should_not have_content @target_account.api_token }
152
-
153
167
  it { page.should_not have_link I18n.t("iugu.generate_new_token") }
154
168
 
155
169
  end
@@ -4,13 +4,30 @@ describe 'account settings view' do
4
4
  before(:each) do
5
5
  IuguSDK::enable_social_login = true
6
6
  IuguSDK::enable_social_linking = true
7
+ IuguSDK::enable_user_cancel = true
7
8
  visit '/account/auth/facebook'
8
9
  visit profile_settings_path
9
10
  end
10
11
 
11
- it { page.should have_link I18n.t("iugu.remove_user") }
12
12
  it { page.should have_content I18n.t("iugu.social_account") }
13
13
 
14
+ context "when enable_user_cancel == true" do
15
+ before(:each) do
16
+ IuguSDK::enable_user_cancel = true
17
+ visit profile_settings_path
18
+ end
19
+
20
+ it { page.should have_link I18n.t("iugu.remove_user") }
21
+ end
22
+
23
+ context "when enable_user_cancel == false" do
24
+ before(:each) do
25
+ IuguSDK::enable_user_cancel = false
26
+ visit profile_settings_path
27
+ end
28
+ it { page.should_not have_link I18n.t("iugu.remove_user") }
29
+ end
30
+
14
31
  context "when user is being destroyed" do
15
32
  before(:each) do
16
33
  click_on I18n.t("iugu.remove_user")