devise-remote-user 0.3.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ruby.yml +53 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +37 -1
  5. data/LICENSE +2 -2
  6. data/README.md +7 -2
  7. data/Rakefile +4 -8
  8. data/{devise_remote_user.gemspec → devise-remote-user.gemspec} +3 -3
  9. data/lib/devise-remote-user.rb +1 -0
  10. data/lib/devise_remote_user.rb +20 -14
  11. data/lib/devise_remote_user/controller_behavior.rb +1 -1
  12. data/lib/devise_remote_user/manager.rb +15 -10
  13. data/lib/devise_remote_user/model.rb +3 -5
  14. data/lib/devise_remote_user/strategy.rb +1 -1
  15. data/lib/devise_remote_user/version.rb +1 -1
  16. data/spec/controllers/application_controller_spec.rb +11 -11
  17. data/spec/controllers/devise/sessions_controller_spec.rb +2 -3
  18. data/spec/lib/devise_remote_user_spec.rb +50 -0
  19. data/spec/spec_helper.rb +36 -8
  20. data/spec/{dummy/db/migrate → test_app_templates}/20131101184256_add_name_fields_to_user.rb +1 -1
  21. data/spec/test_app_templates/lib/generators/test_app_generator.rb +34 -0
  22. metadata +45 -157
  23. data/spec/controllers/application_controller_spec.rb~ +0 -9
  24. data/spec/controllers/devise/sessions_controller_spec.rb~ +0 -20
  25. data/spec/dummy/README.rdoc +0 -28
  26. data/spec/dummy/Rakefile +0 -6
  27. data/spec/dummy/app/assets/images/.keep +0 -0
  28. data/spec/dummy/app/assets/javascripts/application.js +0 -13
  29. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  30. data/spec/dummy/app/controllers/application_controller.rb +0 -13
  31. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  32. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  33. data/spec/dummy/app/mailers/.keep +0 -0
  34. data/spec/dummy/app/models/.keep +0 -0
  35. data/spec/dummy/app/models/concerns/.keep +0 -0
  36. data/spec/dummy/app/models/user.rb +0 -4
  37. data/spec/dummy/app/models/user.rb~ +0 -6
  38. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  39. data/spec/dummy/bin/bundle +0 -3
  40. data/spec/dummy/bin/rails +0 -4
  41. data/spec/dummy/bin/rake +0 -4
  42. data/spec/dummy/config.ru +0 -4
  43. data/spec/dummy/config/application.rb +0 -23
  44. data/spec/dummy/config/boot.rb +0 -5
  45. data/spec/dummy/config/database.yml +0 -25
  46. data/spec/dummy/config/environment.rb +0 -5
  47. data/spec/dummy/config/environments/development.rb +0 -29
  48. data/spec/dummy/config/environments/production.rb +0 -80
  49. data/spec/dummy/config/environments/test.rb +0 -36
  50. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  51. data/spec/dummy/config/initializers/devise.rb +0 -258
  52. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  53. data/spec/dummy/config/initializers/inflections.rb +0 -16
  54. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  55. data/spec/dummy/config/initializers/secret_token.rb +0 -12
  56. data/spec/dummy/config/initializers/session_store.rb +0 -3
  57. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  58. data/spec/dummy/config/locales/devise.en.yml +0 -60
  59. data/spec/dummy/config/locales/en.yml +0 -23
  60. data/spec/dummy/config/routes.rb +0 -4
  61. data/spec/dummy/db/migrate/20131101150807_devise_create_users.rb +0 -42
  62. data/spec/dummy/db/migrate/20131101184256_add_name_fields_to_user.rb~ +0 -4
  63. data/spec/dummy/db/schema.rb +0 -38
  64. data/spec/dummy/lib/assets/.keep +0 -0
  65. data/spec/dummy/log/.keep +0 -0
  66. data/spec/dummy/public/404.html +0 -58
  67. data/spec/dummy/public/422.html +0 -58
  68. data/spec/dummy/public/500.html +0 -57
  69. data/spec/dummy/public/favicon.ico +0 -0
  70. data/spec/dummy/spec/features/#logout_spec.rb# +0 -1
  71. data/spec/factories/user_factories.rb~ +0 -6
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe DeviseRemoteUser do
4
+ context ".remote_user_id" do
5
+ let(:mock_env) { { 'REMOTE_USER' => 'some-id' } }
6
+ context "with a string for the env_key" do
7
+ before do
8
+ allow(DeviseRemoteUser).to receive(:env_key).and_return("REMOTE_USER")
9
+ end
10
+
11
+ it "should retrieve the key from the env" do
12
+ expect(DeviseRemoteUser.remote_user_id(mock_env)).to eq "some-id"
13
+ end
14
+ end
15
+
16
+ context "with a proc for the env_key" do
17
+ before do
18
+ allow(DeviseRemoteUser).to receive(:env_key).and_return lambda { |env| "#{env['REMOTE_USER']}@example.com" }
19
+ end
20
+
21
+ it "should retrieve the key from the env" do
22
+ expect(DeviseRemoteUser.remote_user_id(mock_env)).to eq "some-id@example.com"
23
+ end
24
+ end
25
+
26
+ describe 'create_user' do
27
+ before do
28
+ allow(Devise.mappings[:user]).to receive(:strategies).and_return(stratagies)
29
+ end
30
+
31
+ let(:manager) { DeviseRemoteUser::Manager.new(User, 'REMOTE_USER' => 'some-id') }
32
+ context 'with a user that is database authenticatable' do
33
+ let(:stratagies) { [:database_authenticatable] }
34
+ it 'returns a user with a paswword' do
35
+ expect(User).to receive(:create).with(hash_including(:password))
36
+ manager.create_user
37
+ end
38
+ end
39
+
40
+ context 'with a user that is not database authenticatable' do
41
+ let(:stratagies) { [] }
42
+
43
+ it 'returns a user without a paswword' do
44
+ expect(User).to receive(:create).with(hash_excluding(:password))
45
+ manager.create_user
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,8 +1,12 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
3
+ require "coveralls"
4
+ Coveralls.wear!("rails")
5
+
6
+ require 'engine_cart'
7
+ EngineCart.load_application!
8
+
4
9
  require 'rspec/rails'
5
- require 'rspec/autorun'
6
10
  require 'factory_girl_rails'
7
11
 
8
12
  Rails.backtrace_cleaner.remove_silencers!
@@ -11,11 +15,35 @@ Rails.backtrace_cleaner.remove_silencers!
11
15
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
16
 
13
17
  RSpec.configure do |config|
14
- config.mock_with :rspec
15
- config.use_transactional_fixtures = true
16
- config.infer_base_class_for_anonymous_controllers = false
17
- config.order = "random"
18
+ config.expect_with :rspec do |expectations|
19
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
20
+ end
21
+
22
+ config.mock_with :rspec do |mocks|
23
+ mocks.verify_partial_doubles = true
24
+ end
25
+
26
+ config.shared_context_metadata_behavior = :apply_to_host_groups
27
+
28
+ config.filter_run_when_matching :focus
29
+
30
+ config.example_status_persistence_file_path = "spec/examples.txt"
31
+
32
+ config.disable_monkey_patching!
33
+
34
+ config.default_formatter = 'doc' if config.files_to_run.one?
35
+
36
+ config.order = :random
37
+
38
+ Kernel.srand config.seed
18
39
 
19
- config.include Devise::TestHelpers, :type => :controller
20
- config.include Warden::Test::Helpers
40
+ if defined? Devise::Test::ControllerHelpers
41
+ config.include Devise::Test::ControllerHelpers, type: :controller
42
+ else
43
+ config.include Devise::TestHelpers, type: :controller
44
+ end
45
+ if Rails::VERSION::MAJOR >= 5
46
+ config.include ::Rails.application.routes.url_helpers
47
+ config.include ::Rails.application.routes.mounted_helpers
48
+ end
21
49
  end
@@ -1,4 +1,4 @@
1
- class AddNameFieldsToUser < ActiveRecord::Migration
1
+ class AddNameFieldsToUser < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_table :users do |t|
4
4
  t.string :first_name
@@ -0,0 +1,34 @@
1
+ require 'rails/generators'
2
+
3
+ class TestAppGenerator < Rails::Generators::Base
4
+ source_root '../spec/test_app_templates'
5
+
6
+ def add_devise
7
+ gem 'devise'
8
+ generate "devise:install"
9
+ generate "devise", "User"
10
+ rake 'db:migrate'
11
+ end
12
+
13
+ def add_devise_remote_user
14
+ insert_into_file("app/models/user.rb", after: /^\s*devise /) do
15
+ ":remote_user_authenticatable, "
16
+ end
17
+
18
+ insert_into_file("app/controllers/application_controller.rb", before: /end(\n| )*$/) do
19
+ "\n include DeviseRemoteUser::ControllerBehavior\n"
20
+ end
21
+ end
22
+
23
+ def add_test_action
24
+ insert_into_file("app/controllers/application_controller.rb", before: /end(\n| )*$/) do
25
+ "\n before_action :authenticate_user!\n" \
26
+ "\n def index; render plain: 'You have reached your destination!'; end\n"
27
+ end
28
+ end
29
+
30
+ def add_user_metadata_migrations
31
+ copy_file "20131101184256_add_name_fields_to_user.rb", "db/migrate/20131101184256_add_name_fields_to_user.rb"
32
+ rake 'db:migrate'
33
+ end
34
+ end
metadata CHANGED
@@ -1,105 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-remote-user
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chandek-Stark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-11 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '3.2'
20
- - - <
21
- - !ruby/object:Gem::Version
22
- version: '5.0'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - '>='
28
- - !ruby/object:Gem::Version
29
- version: '3.2'
30
- - - <
31
- - !ruby/object:Gem::Version
32
- version: '5.0'
33
13
  - !ruby/object:Gem::Dependency
34
14
  name: devise
35
15
  requirement: !ruby/object:Gem::Requirement
36
16
  requirements:
37
- - - '>='
17
+ - - ">="
38
18
  - !ruby/object:Gem::Version
39
19
  version: '0'
40
20
  type: :runtime
41
21
  prerelease: false
42
22
  version_requirements: !ruby/object:Gem::Requirement
43
23
  requirements:
44
- - - '>='
24
+ - - ">="
45
25
  - !ruby/object:Gem::Version
46
26
  version: '0'
47
27
  - !ruby/object:Gem::Dependency
48
28
  name: sqlite3
49
29
  requirement: !ruby/object:Gem::Requirement
50
30
  requirements:
51
- - - '>='
31
+ - - ">="
52
32
  - !ruby/object:Gem::Version
53
33
  version: '0'
54
34
  type: :development
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
37
  requirements:
58
- - - '>='
38
+ - - ">="
59
39
  - !ruby/object:Gem::Version
60
40
  version: '0'
61
41
  - !ruby/object:Gem::Dependency
62
42
  name: rspec-rails
63
43
  requirement: !ruby/object:Gem::Requirement
64
44
  requirements:
65
- - - ~>
45
+ - - "~>"
66
46
  - !ruby/object:Gem::Version
67
- version: 2.14.1
47
+ version: '3.4'
68
48
  type: :development
69
49
  prerelease: false
70
50
  version_requirements: !ruby/object:Gem::Requirement
71
51
  requirements:
72
- - - ~>
52
+ - - "~>"
73
53
  - !ruby/object:Gem::Version
74
- version: 2.14.1
54
+ version: '3.4'
75
55
  - !ruby/object:Gem::Dependency
76
56
  name: factory_girl_rails
77
57
  requirement: !ruby/object:Gem::Requirement
78
58
  requirements:
79
- - - '>='
59
+ - - ">="
80
60
  - !ruby/object:Gem::Version
81
61
  version: '0'
82
62
  type: :development
83
63
  prerelease: false
84
64
  version_requirements: !ruby/object:Gem::Requirement
85
65
  requirements:
86
- - - '>='
66
+ - - ">="
87
67
  - !ruby/object:Gem::Version
88
68
  version: '0'
89
69
  - !ruby/object:Gem::Dependency
90
70
  name: capybara
91
71
  requirement: !ruby/object:Gem::Requirement
92
72
  requirements:
93
- - - '>='
73
+ - - ">="
94
74
  - !ruby/object:Gem::Version
95
75
  version: '0'
96
76
  type: :development
97
77
  prerelease: false
98
78
  version_requirements: !ruby/object:Gem::Requirement
99
79
  requirements:
100
- - - '>='
80
+ - - ">="
101
81
  - !ruby/object:Gem::Version
102
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: engine_cart
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
103
97
  description: A devise extension for remote user authentication.
104
98
  email:
105
99
  - lib-drs@duke.edu
@@ -109,14 +103,16 @@ extra_rdoc_files:
109
103
  - LICENSE
110
104
  - README.md
111
105
  files:
112
- - .gitignore
113
- - .rspec
106
+ - ".github/workflows/ruby.yml"
107
+ - ".gitignore"
108
+ - ".rspec"
114
109
  - CONTRIBUTING.md
115
110
  - Gemfile
116
111
  - LICENSE
117
112
  - README.md
118
113
  - Rakefile
119
- - devise_remote_user.gemspec
114
+ - devise-remote-user.gemspec
115
+ - lib/devise-remote-user.rb
120
116
  - lib/devise_remote_user.rb
121
117
  - lib/devise_remote_user/controller_behavior.rb
122
118
  - lib/devise_remote_user/engine.rb
@@ -125,69 +121,12 @@ files:
125
121
  - lib/devise_remote_user/strategy.rb
126
122
  - lib/devise_remote_user/version.rb
127
123
  - spec/controllers/application_controller_spec.rb
128
- - spec/controllers/application_controller_spec.rb~
129
124
  - spec/controllers/devise/sessions_controller_spec.rb
130
- - spec/controllers/devise/sessions_controller_spec.rb~
131
- - spec/dummy/README.rdoc
132
- - spec/dummy/Rakefile
133
- - spec/dummy/app/assets/images/.keep
134
- - spec/dummy/app/assets/javascripts/application.js
135
- - spec/dummy/app/assets/stylesheets/application.css
136
- - spec/dummy/app/controllers/application_controller.rb
137
- - spec/dummy/app/controllers/concerns/.keep
138
- - spec/dummy/app/helpers/application_helper.rb
139
- - spec/dummy/app/mailers/.keep
140
- - spec/dummy/app/models/.keep
141
- - spec/dummy/app/models/concerns/.keep
142
- - spec/dummy/app/models/user.rb
143
- - spec/dummy/app/models/user.rb~
144
- - spec/dummy/app/views/layouts/application.html.erb
145
- - spec/dummy/bin/bundle
146
- - spec/dummy/bin/rails
147
- - spec/dummy/bin/rake
148
- - spec/dummy/config.ru
149
- - spec/dummy/config/application.rb
150
- - spec/dummy/config/boot.rb
151
- - spec/dummy/config/database.yml
152
- - spec/dummy/config/environment.rb
153
- - spec/dummy/config/environments/development.rb
154
- - spec/dummy/config/environments/production.rb
155
- - spec/dummy/config/environments/test.rb
156
- - spec/dummy/config/initializers/backtrace_silencers.rb
157
- - spec/dummy/config/initializers/devise.rb
158
- - spec/dummy/config/initializers/filter_parameter_logging.rb
159
- - spec/dummy/config/initializers/inflections.rb
160
- - spec/dummy/config/initializers/mime_types.rb
161
- - spec/dummy/config/initializers/secret_token.rb
162
- - spec/dummy/config/initializers/session_store.rb
163
- - spec/dummy/config/initializers/wrap_parameters.rb
164
- - spec/dummy/config/locales/devise.en.yml
165
- - spec/dummy/config/locales/en.yml
166
- - spec/dummy/config/routes.rb
167
- - spec/dummy/db/development.sqlite3
168
- - spec/dummy/db/migrate/20131101150807_devise_create_users.rb
169
- - spec/dummy/db/migrate/20131101184256_add_name_fields_to_user.rb
170
- - spec/dummy/db/migrate/20131101184256_add_name_fields_to_user.rb~
171
- - spec/dummy/db/schema.rb
172
- - spec/dummy/db/test.sqlite3
173
- - spec/dummy/lib/assets/.keep
174
- - spec/dummy/log/.keep
175
- - spec/dummy/log/development.log
176
- - spec/dummy/log/test.log
177
- - spec/dummy/public/404.html
178
- - spec/dummy/public/422.html
179
- - spec/dummy/public/500.html
180
- - spec/dummy/public/favicon.ico
181
- - spec/dummy/spec/features/#logout_spec.rb#
182
- - spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
183
- - spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
184
- - spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
185
- - spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
186
- - spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
187
- - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
188
125
  - spec/factories/user_factories.rb
189
- - spec/factories/user_factories.rb~
126
+ - spec/lib/devise_remote_user_spec.rb
190
127
  - spec/spec_helper.rb
128
+ - spec/test_app_templates/20131101184256_add_name_fields_to_user.rb
129
+ - spec/test_app_templates/lib/generators/test_app_generator.rb
191
130
  homepage: http://github.com/duke-libraries/devise-remote-user
192
131
  licenses:
193
132
  - BSD
@@ -198,75 +137,24 @@ require_paths:
198
137
  - lib
199
138
  required_ruby_version: !ruby/object:Gem::Requirement
200
139
  requirements:
201
- - - '>='
140
+ - - ">="
202
141
  - !ruby/object:Gem::Version
203
142
  version: '0'
204
143
  required_rubygems_version: !ruby/object:Gem::Requirement
205
144
  requirements:
206
- - - '>='
145
+ - - ">="
207
146
  - !ruby/object:Gem::Version
208
147
  version: '0'
209
148
  requirements: []
210
- rubyforge_project:
211
- rubygems_version: 2.2.2
149
+ rubygems_version: 3.1.2
212
150
  signing_key:
213
151
  specification_version: 4
214
152
  summary: A devise extension for remote user authentication.
215
153
  test_files:
216
- - spec/controllers/application_controller_spec.rb
217
- - spec/controllers/application_controller_spec.rb~
218
- - spec/controllers/devise/sessions_controller_spec.rb
219
- - spec/controllers/devise/sessions_controller_spec.rb~
220
- - spec/dummy/app/assets/javascripts/application.js
221
- - spec/dummy/app/assets/stylesheets/application.css
222
- - spec/dummy/app/controllers/application_controller.rb
223
- - spec/dummy/app/helpers/application_helper.rb
224
- - spec/dummy/app/models/user.rb
225
- - spec/dummy/app/models/user.rb~
226
- - spec/dummy/app/views/layouts/application.html.erb
227
- - spec/dummy/bin/bundle
228
- - spec/dummy/bin/rails
229
- - spec/dummy/bin/rake
230
- - spec/dummy/config/application.rb
231
- - spec/dummy/config/boot.rb
232
- - spec/dummy/config/database.yml
233
- - spec/dummy/config/environment.rb
234
- - spec/dummy/config/environments/development.rb
235
- - spec/dummy/config/environments/production.rb
236
- - spec/dummy/config/environments/test.rb
237
- - spec/dummy/config/initializers/backtrace_silencers.rb
238
- - spec/dummy/config/initializers/devise.rb
239
- - spec/dummy/config/initializers/filter_parameter_logging.rb
240
- - spec/dummy/config/initializers/inflections.rb
241
- - spec/dummy/config/initializers/mime_types.rb
242
- - spec/dummy/config/initializers/secret_token.rb
243
- - spec/dummy/config/initializers/session_store.rb
244
- - spec/dummy/config/initializers/wrap_parameters.rb
245
- - spec/dummy/config/locales/devise.en.yml
246
- - spec/dummy/config/locales/en.yml
247
- - spec/dummy/config/routes.rb
248
- - spec/dummy/config.ru
249
- - spec/dummy/db/development.sqlite3
250
- - spec/dummy/db/migrate/20131101150807_devise_create_users.rb
251
- - spec/dummy/db/migrate/20131101184256_add_name_fields_to_user.rb
252
- - spec/dummy/db/migrate/20131101184256_add_name_fields_to_user.rb~
253
- - spec/dummy/db/schema.rb
254
- - spec/dummy/db/test.sqlite3
255
- - spec/dummy/log/development.log
256
- - spec/dummy/log/test.log
257
- - spec/dummy/public/404.html
258
- - spec/dummy/public/422.html
259
- - spec/dummy/public/500.html
260
- - spec/dummy/public/favicon.ico
261
- - spec/dummy/Rakefile
262
- - spec/dummy/README.rdoc
263
- - spec/dummy/spec/features/#logout_spec.rb#
264
- - spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
265
- - spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
266
- - spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
267
- - spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
268
- - spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
269
- - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
270
- - spec/factories/user_factories.rb
271
- - spec/factories/user_factories.rb~
272
154
  - spec/spec_helper.rb
155
+ - spec/factories/user_factories.rb
156
+ - spec/test_app_templates/20131101184256_add_name_fields_to_user.rb
157
+ - spec/test_app_templates/lib/generators/test_app_generator.rb
158
+ - spec/lib/devise_remote_user_spec.rb
159
+ - spec/controllers/devise/sessions_controller_spec.rb
160
+ - spec/controllers/application_controller_spec.rb