mirror of
https://github.com/heartcombo/devise.git
synced 2026-04-28 03:00:29 -04:00
make scope required
This commit is contained in:
@@ -22,7 +22,7 @@ module Devise
|
||||
DESC
|
||||
|
||||
source_root File.expand_path("../../templates/controllers", __FILE__)
|
||||
argument :scope, required: false, default: nil,
|
||||
argument :scope, required: true,
|
||||
desc: "The scope to create controllers in, e.g. users, admins"
|
||||
class_option :controllers, aliases: "-c", type: :array,
|
||||
desc: "Select specific controllers to generate (#{CONTROLLERS.join(', ')})"
|
||||
|
||||
@@ -5,9 +5,14 @@ class ControllersGeneratorTest < Rails::Generators::TestCase
|
||||
destination File.expand_path("../../tmp", __FILE__)
|
||||
setup :prepare_destination
|
||||
|
||||
test "Assert all controllers are properly created with no params" do
|
||||
test "Assert no controllers are created with no params" do
|
||||
run_generator
|
||||
assert_class_names
|
||||
assert_no_file "app/controllers/sessions_controller.rb"
|
||||
assert_no_file "app/controllers/registrations_controller.rb"
|
||||
assert_no_file "app/controllers/confirmations_controller.rb"
|
||||
assert_no_file "app/controllers/passwords_controller.rb"
|
||||
assert_no_file "app/controllers/unlocks_controller.rb"
|
||||
assert_no_file "app/controllers/omniauth_callbacks_controller.rb"
|
||||
end
|
||||
|
||||
test "Assert all controllers are properly created with scope param" do
|
||||
@@ -18,25 +23,19 @@ class ControllersGeneratorTest < Rails::Generators::TestCase
|
||||
assert_class_names 'admins'
|
||||
end
|
||||
|
||||
test "Assert only controllers with specific names" do
|
||||
run_generator %w(-c sessions registrations)
|
||||
assert_file "app/controllers/sessions_controller.rb"
|
||||
assert_file "app/controllers/registrations_controller.rb"
|
||||
assert_no_file "app/controllers/confirmations_controller.rb"
|
||||
assert_no_file "app/controllers/passwords_controller.rb"
|
||||
assert_no_file "app/controllers/unlocks_controller.rb"
|
||||
assert_no_file "app/controllers/omniauth_callbacks_controller.rb"
|
||||
end
|
||||
|
||||
test "Assert specified controllers with scope" do
|
||||
run_generator %w(users -c sessions)
|
||||
assert_file "app/controllers/users/sessions_controller.rb"
|
||||
assert_no_file "app/controllers/users/registrations_controller.rb"
|
||||
assert_no_file "app/controllers/users/confirmations_controller.rb"
|
||||
assert_no_file "app/controllers/users/passwords_controller.rb"
|
||||
assert_no_file "app/controllers/users/unlocks_controller.rb"
|
||||
assert_no_file "app/controllers/users/omniauth_callbacks_controller.rb"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def assert_class_names(scope = nil, options = {})
|
||||
def assert_class_names(scope, options = {})
|
||||
base_dir = "app/controllers#{scope.blank? ? '' : ('/' + scope)}"
|
||||
scope_prefix = scope.blank? ? '' : (scope.camelize + '::')
|
||||
controllers = options[:controllers] ||
|
||||
|
||||
Reference in New Issue
Block a user