cadenero 0.0.2.a → 0.0.2.a1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. data/README.md +46 -9
  2. data/app/controllers/cadenero/v1/account/dashboard_controller.rb +1 -1
  3. data/app/controllers/cadenero/v1/account/sessions_controller.rb +27 -0
  4. data/app/controllers/cadenero/v1/accounts_controller.rb +4 -0
  5. data/app/extenders/controllers/application_controller_decorator.rb +4 -3
  6. data/app/serializers/cadenero/user_serializer.rb +1 -0
  7. data/config/initializers/warden/strategies/password.rb +13 -4
  8. data/config/initializers/warden.rb +1 -0
  9. data/config/routes.rb +6 -11
  10. data/db/seeds.rb +8 -2
  11. data/lib/cadenero/engine.rb +1 -0
  12. data/lib/cadenero/version.rb +1 -1
  13. data/lib/cadenero.rb +25 -0
  14. data/lib/generators/cadenero/install/templates/initializer.rb +0 -3
  15. data/lib/generators/cadenero/install_generator.rb +40 -17
  16. data/spec/dummy/app/controllers/application_controller.rb +6 -0
  17. data/spec/dummy/db/seeds.rb +8 -0
  18. data/spec/dummy/log/development.log +527 -87
  19. data/spec/dummy/log/test.log +3117 -8571
  20. data/spec/dummy/tmp/cache/assets/D0B/E90/sprockets%2F2c56f5dc65ded8014ad1226c5c985124 +0 -0
  21. data/spec/dummy/tmp/cache/assets/D86/490/sprockets%2Faaf0d4667cf7ef62869d70539bc77af7 +0 -0
  22. data/spec/dummy/tmp/cache/assets/DA6/CC0/sprockets%2F1c575d7a7db598dfcf41536ccc83f01e +0 -0
  23. data/spec/dummy/tmp/cache/assets/DB6/250/sprockets%2F0f882b7b9528900cfec89e8b2fffcc38 +0 -0
  24. data/spec/dummy/tmp/cache/assets/E18/9D0/sprockets%2F1f79e8f926ea465ded9dcc552cd56bff +0 -0
  25. data/spec/dummy/tmp/restart.txt +0 -0
  26. data/spec/features/users/sign_in_spec.rb +29 -10
  27. data/spec/features/users/sign_up_spec.rb +2 -2
  28. data/spec/generators/install_generator_spec.rb +1 -24
  29. metadata +17 -3
  30. data/app/controllers/cadenero/v1/sessions_controller.rb +0 -13
File without changes
@@ -6,8 +6,8 @@ feature 'User sign in' do
6
6
  @user ||= { email: "user@example.com", password: "password", password_confirmation: "password" }
7
7
  end
8
8
 
9
- def sign_in_account_user(user)
10
- @user = { email: user.email, password: "password", password_confirmation: "password" }
9
+ def account_user(user)
10
+ @user = { email: user.email, password: "password" }
11
11
  end
12
12
 
13
13
  def find_account_by_email
@@ -16,30 +16,49 @@ feature 'User sign in' do
16
16
  end
17
17
 
18
18
  def sign_in_user(url, user)
19
- post "#{url}", user: user
19
+ post "#{url}", format: :json, user: user
20
20
  find_account_by_email
21
21
  end
22
22
 
23
23
  let(:account) { FactoryGirl.create(:account_with_schema) }
24
- let(:errors_redirect_ro_sign_in) {{errors: "Please sign in. posting the user json credentials to /v1/sign_in", links: "/v1/sign_in"}.to_json}
24
+ let(:errors_redirect_ro_sign_in) {{errors: %Q{Please sign in. posting the user json credentials as: {"user": {"email": "testy2@example.com", "password": "changeme"}} to /v1/sessions}, links: "/v1/sessions"}.to_json}
25
25
  let(:errors_invalid_email_or_password) {{ errors: {user:["Invalid email or password"]} }.to_json}
26
- let(:sign_in_url) { "http://#{account.subdomain}.example.com/v1/sign_in" }
26
+ let(:sessions_url) { "http://#{account.subdomain}.example.com/v1/sessions" }
27
27
  let(:root_url) { "http://#{account.subdomain}.example.com/v1" }
28
28
 
29
29
  within_account_subdomain do
30
30
  scenario "signs in as an account owner successfully" do
31
- get root_url
31
+ get cadenero.v1_root_url(:subdomain => account.subdomain)
32
32
  expect(last_response.body).to eql(errors_redirect_ro_sign_in)
33
- sign_in_user sign_in_url, sign_in_account_user(account.owner)
33
+ expect(last_response.status).to eq 422
34
+ sign_in_user sessions_url, account_user(account.owner)
35
+ expect(last_response.status).to eq 201
36
+ expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
37
+ user_email = JSON.parse(last_response.body)["user"]["email"]
38
+ get root_url
39
+ expect(JSON.parse(last_response.body)["message"]).to have_content user_email
40
+ end
41
+ end
42
+
43
+ within_account_subdomain do
44
+ scenario "signout as an account owner successfully" do
45
+ sign_in_user sessions_url, account_user(account.owner)
34
46
  expect(last_response.status).to eq 201
35
47
  expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
48
+ user_email = JSON.parse(last_response.body)["user"]["email"]
49
+ delete sessions_url, id: account.owner.id
50
+ expect(last_response.status).to eq 201
51
+ expect(JSON.parse(last_response.body)["message"]).to have_content "Successful logout"
52
+ get cadenero.v1_root_url(:subdomain => account.subdomain)
53
+ expect(last_response.body).to eql(errors_redirect_ro_sign_in)
54
+ expect(last_response.status).to eq 422
36
55
  end
37
56
  end
38
57
 
39
58
  it "attempts sign in with an invalid password and fails" do
40
59
  get cadenero.v1_root_url(:subdomain => account.subdomain)
41
60
  expect(last_response.body).to eql(errors_redirect_ro_sign_in)
42
- sign_in_user sign_in_url, { email: "user@example.com", password: "", password_confirmation: "" }
61
+ sign_in_user sessions_url, { email: "user@example.com", password: "", password_confirmation: "" }
43
62
  expect(last_response.status).to eq 422
44
63
  expect(last_response.body).to eql(errors_invalid_email_or_password)
45
64
  end
@@ -47,7 +66,7 @@ feature 'User sign in' do
47
66
  it "attempts sign in with an invalid email address and fails" do
48
67
  get cadenero.v1_root_url(:subdomain => account.subdomain)
49
68
  expect(last_response.body).to eql(errors_redirect_ro_sign_in)
50
- sign_in_user sign_in_url, { email: "foo@example.com", password: "password", password_confirmation: "password" }
69
+ sign_in_user sessions_url, { email: "foo@example.com", password: "password", password_confirmation: "password" }
51
70
  expect(last_response.status).to eq 422
52
71
  expect(last_response.body).to eql(errors_invalid_email_or_password)
53
72
  end
@@ -56,7 +75,7 @@ feature 'User sign in' do
56
75
  other_account = FactoryGirl.create(:account)
57
76
  get cadenero.v1_root_url(:subdomain => account.subdomain)
58
77
  expect(last_response.body).to eql(errors_redirect_ro_sign_in)
59
- sign_in_user sign_in_url, { email: other_account.owner.email, password: "", password_confirmation: "" }
78
+ sign_in_user sessions_url, { email: other_account.owner.email, password: "", password_confirmation: "" }
60
79
  expect(last_response.status).to eq 422
61
80
  expect(last_response.body).to eql(errors_invalid_email_or_password)
62
81
  end
@@ -10,7 +10,7 @@ end
10
10
 
11
11
  def sign_up_user(url)
12
12
  create_account_user
13
- post "#{url}/v1/sign_up", user: @user
13
+ post "#{url}/v1/users", user: @user
14
14
  find_account_by_email
15
15
  end
16
16
 
@@ -21,6 +21,6 @@ feature "User signup" do
21
21
  sign_up_user root_url
22
22
  expect(last_response.status).to eq 201
23
23
  expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
24
- expect(last_request.url).to eq "#{root_url}v1/sign_up"
24
+ expect(last_request.url).to eq "#{root_url}v1/users"
25
25
  end
26
26
  end
@@ -16,30 +16,7 @@ describe Cadenero::Generators::InstallGenerator do
16
16
  Dir["#{Rails.root}/db/migrate/*.rb"].sort
17
17
  end
18
18
 
19
- it "copies over the migrations" do
20
- migrations.should be_empty
21
- capture(:stdout) do
22
- described_class.start(["--user-class=User", "--no-migrate", "--current-user-helper=current_user"], :destination => Rails.root)
23
- end
24
-
25
- # Ensure cadenero migrations have been copied over
26
- migrations.should_not be_empty
27
-
28
- # Ensure initializer has been created
29
- #cadenero_initializer = File.readlines("#{Rails.root}/config/initializers/cadenero.rb")
30
- #cadenero_initializer[0].strip.should == %q{Cadenero.user_class = "User"}
31
-
32
- # Ensure cadenero_user is added to ApplicationController
33
- application_controller = File.read("#{Rails.root}/app/controllers/application_controller.rb")
34
- expected_cadenero_user_method = %Q{
35
- def cadenero_user
36
- current_user
37
- end
38
- helper_method :cadenero_user
39
-
40
- }
41
- application_controller.should include(expected_cadenero_user_method)
42
- end
19
+
43
20
 
44
21
  it "seeds the database" do
45
22
  Cadenero::V1::Account.count.should == 0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cadenero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.a
4
+ version: 0.0.2.a1
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-26 00:00:00.000000000 Z
12
+ date: 2013-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails-api
@@ -235,9 +235,9 @@ files:
235
235
  - app/assets/stylesheets/cadenero/v1/users.css
236
236
  - app/controllers/cadenero/application_controller.rb
237
237
  - app/controllers/cadenero/v1/account/dashboard_controller.rb
238
+ - app/controllers/cadenero/v1/account/sessions_controller.rb
238
239
  - app/controllers/cadenero/v1/account/users_controller.rb
239
240
  - app/controllers/cadenero/v1/accounts_controller.rb
240
- - app/controllers/cadenero/v1/sessions_controller.rb
241
241
  - app/extenders/controllers/application_controller_decorator.rb
242
242
  - app/helpers/cadenero/application_helper.rb
243
243
  - app/helpers/cadenero/v1/accounts_helper.rb
@@ -282,6 +282,7 @@ files:
282
282
  - spec/dummy/config/routes.rb
283
283
  - spec/dummy/config.ru
284
284
  - spec/dummy/db/schema.rb
285
+ - spec/dummy/db/seeds.rb
285
286
  - spec/dummy/log/development.log
286
287
  - spec/dummy/log/test.log
287
288
  - spec/dummy/public/404.html
@@ -292,8 +293,14 @@ files:
292
293
  - spec/dummy/README.rdoc
293
294
  - spec/dummy/script/rails
294
295
  - spec/dummy/spec/spec_helper.rb
296
+ - spec/dummy/tmp/cache/assets/D0B/E90/sprockets%2F2c56f5dc65ded8014ad1226c5c985124
297
+ - spec/dummy/tmp/cache/assets/D86/490/sprockets%2Faaf0d4667cf7ef62869d70539bc77af7
298
+ - spec/dummy/tmp/cache/assets/DA6/CC0/sprockets%2F1c575d7a7db598dfcf41536ccc83f01e
299
+ - spec/dummy/tmp/cache/assets/DB6/250/sprockets%2F0f882b7b9528900cfec89e8b2fffcc38
300
+ - spec/dummy/tmp/cache/assets/E18/9D0/sprockets%2F1f79e8f926ea465ded9dcc552cd56bff
295
301
  - spec/dummy/tmp/ember-rails/ember-data.js
296
302
  - spec/dummy/tmp/ember-rails/ember.js
303
+ - spec/dummy/tmp/restart.txt
297
304
  - spec/features/accounts/sign_up_spec.rb
298
305
  - spec/features/cadenero/account_spec.rb
299
306
  - spec/features/users/sign_in_spec.rb
@@ -348,6 +355,7 @@ test_files:
348
355
  - spec/dummy/config/routes.rb
349
356
  - spec/dummy/config.ru
350
357
  - spec/dummy/db/schema.rb
358
+ - spec/dummy/db/seeds.rb
351
359
  - spec/dummy/log/development.log
352
360
  - spec/dummy/log/test.log
353
361
  - spec/dummy/public/404.html
@@ -358,8 +366,14 @@ test_files:
358
366
  - spec/dummy/README.rdoc
359
367
  - spec/dummy/script/rails
360
368
  - spec/dummy/spec/spec_helper.rb
369
+ - spec/dummy/tmp/cache/assets/D0B/E90/sprockets%2F2c56f5dc65ded8014ad1226c5c985124
370
+ - spec/dummy/tmp/cache/assets/D86/490/sprockets%2Faaf0d4667cf7ef62869d70539bc77af7
371
+ - spec/dummy/tmp/cache/assets/DA6/CC0/sprockets%2F1c575d7a7db598dfcf41536ccc83f01e
372
+ - spec/dummy/tmp/cache/assets/DB6/250/sprockets%2F0f882b7b9528900cfec89e8b2fffcc38
373
+ - spec/dummy/tmp/cache/assets/E18/9D0/sprockets%2F1f79e8f926ea465ded9dcc552cd56bff
361
374
  - spec/dummy/tmp/ember-rails/ember-data.js
362
375
  - spec/dummy/tmp/ember-rails/ember.js
376
+ - spec/dummy/tmp/restart.txt
363
377
  - spec/features/accounts/sign_up_spec.rb
364
378
  - spec/features/cadenero/account_spec.rb
365
379
  - spec/features/users/sign_in_spec.rb
@@ -1,13 +0,0 @@
1
- require_dependency "cadenero/application_controller"
2
-
3
- module Cadenero::V1
4
- class Account::SessionsController < Cadenero::ApplicationController
5
- def create
6
- if env['warden'].authenticate(:scope => :user)
7
- render json: current_user, status: 201
8
- else
9
- render json: {errors: {user:["Invalid email or password"]}}, status: 422
10
- end
11
- end
12
- end
13
- end