class NamespacedScaffoldGeneratorTest

Public Instance Methods

test_api_scaffold_with_namespace_on_invoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 403
def test_api_scaffold_with_namespace_on_invoke
  run_generator [ "admin/role", "name:string", "description:string", "--api" ]

  # Model
  assert_file "app/models/test_app/admin.rb", /module TestApp\n  module Admin/
  assert_file "app/models/test_app/admin/role.rb", /module TestApp\n  class Admin::Role < ApplicationRecord/
  assert_file "test/models/test_app/admin/role_test.rb", /module TestApp\n  class Admin::RoleTest < ActiveSupport::TestCase/
  assert_file "test/fixtures/test_app/admin/roles.yml"
  assert_migration "db/migrate/create_test_app_admin_roles.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_match(/^  namespace :admin do\n    resources :roles\n  end$/, route)
  end

  # Controller
  assert_file "app/controllers/test_app/admin/roles_controller.rb" do |content|
    assert_match(/module TestApp\n  class Admin::RolesController < ApplicationController/, content)
    assert_match(%r(require_dependency "test_app/application_controller"), content)
  end
  assert_file "test/controllers/test_app/admin/roles_controller_test.rb",
              /module TestApp\n  class Admin::RolesControllerTest < ActionDispatch::IntegrationTest/
end
test_scaffold_on_invoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 203
def test_scaffold_on_invoke
  run_generator

  # Model
  assert_file "app/models/test_app/product_line.rb", /module TestApp\n  class ProductLine < ApplicationRecord/
  assert_file "test/models/test_app/product_line_test.rb", /module TestApp\n  class ProductLineTest < ActiveSupport::TestCase/
  assert_file "test/fixtures/test_app/product_lines.yml"
  assert_migration "db/migrate/create_test_app_product_lines.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_match(/resources :product_lines$/, route)
  end

  # Controller
  assert_file "app/controllers/test_app/product_lines_controller.rb",
              /require_dependency "test_app\/application_controller"/,
              /module TestApp/,
              /class ProductLinesController < ApplicationController/

  assert_file "test/controllers/test_app/product_lines_controller_test.rb",
              /module TestApp\n  class ProductLinesControllerTest < ActionDispatch::IntegrationTest/

  # Views
  %w(index edit new show _form).each do |view|
    assert_file "app/views/test_app/product_lines/#{view}.html.erb"
  end
  assert_no_file "app/views/layouts/test_app/product_lines.html.erb"

  # Helpers
  assert_file "app/helpers/test_app/product_lines_helper.rb"

  # Stylesheets
  assert_file "app/assets/stylesheets/scaffold.css"
end
test_scaffold_on_revoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 239
def test_scaffold_on_revoke
  run_generator
  run_generator ["product_line"], behavior: :revoke

  # Model
  assert_no_file "app/models/test_app/product_line.rb"
  assert_no_file "test/models/test_app/product_line_test.rb"
  assert_no_file "test/fixtures/test_app/product_lines.yml"
  assert_no_migration "db/migrate/create_test_app_product_lines.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_no_match(/resources :product_lines$/, route)
  end

  # Controller
  assert_no_file "app/controllers/test_app/product_lines_controller.rb"
  assert_no_file "test/controllers/test_app/product_lines_controller_test.rb"

  # Views
  assert_no_file "app/views/test_app/product_lines"
  assert_no_file "app/views/test_app/layouts/product_lines.html.erb"

  # Helpers
  assert_no_file "app/helpers/test_app/product_lines_helper.rb"

  # Stylesheets (should not be removed)
  assert_file "app/assets/stylesheets/scaffold.css"
end
test_scaffold_with_namespace_on_invoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 269
def test_scaffold_with_namespace_on_invoke
  run_generator [ "admin/role", "name:string", "description:string" ]

  # Model
  assert_file "app/models/test_app/admin.rb", /module TestApp\n  module Admin/
  assert_file "app/models/test_app/admin/role.rb", /module TestApp\n  class Admin::Role < ApplicationRecord/
  assert_file "test/models/test_app/admin/role_test.rb", /module TestApp\n  class Admin::RoleTest < ActiveSupport::TestCase/
  assert_file "test/fixtures/test_app/admin/roles.yml"
  assert_migration "db/migrate/create_test_app_admin_roles.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_match(/^  namespace :admin do\n    resources :roles\n  end$/, route)
  end

  # Controller
  assert_file "app/controllers/test_app/admin/roles_controller.rb" do |content|
    assert_match(/module TestApp\n  class Admin::RolesController < ApplicationController/, content)
    assert_match(%r(require_dependency "test_app/application_controller"), content)
  end

  assert_file "test/controllers/test_app/admin/roles_controller_test.rb",
              /module TestApp\n  class Admin::RolesControllerTest < ActionDispatch::IntegrationTest/

  # Views
  %w(index edit new show _form).each do |view|
    assert_file "app/views/test_app/admin/roles/#{view}.html.erb"
  end
  assert_no_file "app/views/layouts/admin/roles.html.erb"

  # Helpers
  assert_file "app/helpers/test_app/admin/roles_helper.rb"

  # Stylesheets
  assert_file "app/assets/stylesheets/scaffold.css"
end
test_scaffold_with_namespace_on_revoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 306
def test_scaffold_with_namespace_on_revoke
  run_generator [ "admin/role", "name:string", "description:string" ]
  run_generator [ "admin/role" ], behavior: :revoke

  # Model
  assert_file "app/models/test_app/admin.rb"  # ( should not be remove )
  assert_no_file "app/models/test_app/admin/role.rb"
  assert_no_file "test/models/test_app/admin/role_test.rb"
  assert_no_file "test/fixtures/test_app/admin/roles.yml"
  assert_no_migration "db/migrate/create_test_app_admin_roles.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_no_match(/^  namespace :admin do\n    resources :roles\n  end$$/, route)
  end

  # Controller
  assert_no_file "app/controllers/test_app/admin/roles_controller.rb"
  assert_no_file "test/controllers/test_app/admin/roles_controller_test.rb"

  # Views
  assert_no_file "app/views/test_app/admin/roles"
  assert_no_file "app/views/layouts/test_app/admin/roles.html.erb"

  # Helpers
  assert_no_file "app/helpers/test_app/admin/roles_helper.rb"

  # Stylesheets (should not be removed)
  assert_file "app/assets/stylesheets/scaffold.css"
end
test_scaffold_with_nested_namespace_on_invoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 337
def test_scaffold_with_nested_namespace_on_invoke
  run_generator [ "admin/user/special/role", "name:string", "description:string" ]

  # Model
  assert_file "app/models/test_app/admin/user/special.rb", /module TestApp\n  module Admin/
  assert_file "app/models/test_app/admin/user/special/role.rb", /module TestApp\n  class Admin::User::Special::Role < ApplicationRecord/
  assert_file "test/models/test_app/admin/user/special/role_test.rb", /module TestApp\n  class Admin::User::Special::RoleTest < ActiveSupport::TestCase/
  assert_file "test/fixtures/test_app/admin/user/special/roles.yml"
  assert_migration "db/migrate/create_test_app_admin_user_special_roles.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_match(/^  namespace :admin do\n    namespace :user do\n      namespace :special do\n        resources :roles\n      end\n    end\n  end$/, route)
  end

  # Controller
  assert_file "app/controllers/test_app/admin/user/special/roles_controller.rb" do |content|
    assert_match(/module TestApp\n  class Admin::User::Special::RolesController < ApplicationController/, content)
  end

  assert_file "test/controllers/test_app/admin/user/special/roles_controller_test.rb",
              /module TestApp\n  class Admin::User::Special::RolesControllerTest < ActionDispatch::IntegrationTest/

  # Views
  %w(index edit new show _form).each do |view|
    assert_file "app/views/test_app/admin/user/special/roles/#{view}.html.erb"
  end
  assert_no_file "app/views/layouts/admin/user/special/roles.html.erb"

  # Helpers
  assert_file "app/helpers/test_app/admin/user/special/roles_helper.rb"

  # Stylesheets
  assert_file "app/assets/stylesheets/scaffold.css"
end
test_scaffold_with_nested_namespace_on_revoke() click to toggle source
# File railties/test/generators/namespaced_generators_test.rb, line 373
def test_scaffold_with_nested_namespace_on_revoke
  run_generator [ "admin/user/special/role", "name:string", "description:string" ]
  run_generator [ "admin/user/special/role" ], behavior: :revoke

  # Model
  assert_file "app/models/test_app/admin/user/special.rb"     # ( should not be remove )
  assert_no_file "app/models/test_app/admin/user/special/role.rb"
  assert_no_file "test/models/test_app/admin/user/special/role_test.rb"
  assert_no_file "test/fixtures/test_app/admin/user/special/roles.yml"
  assert_no_migration "db/migrate/create_test_app_admin_user_special_roles.rb"

  # Route
  assert_file "config/routes.rb" do |route|
    assert_no_match(/^  namespace :admin do\n    namespace :user do\n      namespace :special do\n        resources :roles\n      end\n    end\n  end$/, route)
  end

  # Controller
  assert_no_file "app/controllers/test_app/admin/user/special/roles_controller.rb"
  assert_no_file "test/controllers/test_app/admin/user/special/roles_controller_test.rb"

  # Views
  assert_no_file "app/views/test_app/admin/user/special/roles"

  # Helpers
  assert_no_file "app/helpers/test_app/admin/user/special/roles_helper.rb"

  # Stylesheets (should not be removed)
  assert_file "app/assets/stylesheets/scaffold.css"
end