heartcombo--devise/test/generators/active_record_generator_tes...

86 lines
2.8 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require "test_helper"
2010-12-10 14:51:28 +00:00
if DEVISE_ORM == :active_record
require "generators/active_record/devise_generator"
2010-12-10 14:51:28 +00:00
class ActiveRecordGeneratorTest < Rails::Generators::TestCase
tests ActiveRecord::Generators::DeviseGenerator
destination File.expand_path("../../tmp", __FILE__)
setup :prepare_destination
test "all files are properly created with rails31 migration syntax" do
2012-01-02 19:43:39 +00:00
run_generator %w(monster)
assert_migration "db/migrate/devise_create_monsters.rb", /def change/
end
test "all files for namespaced model are properly created" do
run_generator %w(admin/monster)
assert_migration "db/migrate/devise_create_admin_monsters.rb", /def change/
end
test "update model migration when model exists" do
run_generator %w(monster)
assert_file "app/models/monster.rb"
run_generator %w(monster)
assert_migration "db/migrate/add_devise_to_monsters.rb"
end
2010-12-10 14:51:28 +00:00
test "all files are properly deleted" do
run_generator %w(monster)
run_generator %w(monster)
assert_migration "db/migrate/devise_create_monsters.rb"
assert_migration "db/migrate/add_devise_to_monsters.rb"
2014-02-25 16:42:55 +00:00
run_generator %w(monster), behavior: :revoke
assert_no_migration "db/migrate/add_devise_to_monsters.rb"
assert_migration "db/migrate/devise_create_monsters.rb"
2014-02-25 16:42:55 +00:00
run_generator %w(monster), behavior: :revoke
2010-12-10 14:51:28 +00:00
assert_no_file "app/models/monster.rb"
assert_no_migration "db/migrate/devise_create_monsters.rb"
end
2014-05-07 06:50:21 +00:00
test "use string column type for ip addresses" do
run_generator %w(monster)
assert_migration "db/migrate/devise_create_monsters.rb", /t.string :current_sign_in_ip/
assert_migration "db/migrate/devise_create_monsters.rb", /t.string :last_sign_in_ip/
end
end
2012-04-27 20:57:44 +00:00
2012-05-02 17:10:55 +00:00
module RailsEngine
class Engine < Rails::Engine
isolate_namespace RailsEngine
end
end
2012-04-27 20:57:44 +00:00
def simulate_inside_engine(engine, namespace)
if Rails::Generators.respond_to?(:namespace=)
2014-02-25 16:42:55 +00:00
swap Rails::Generators, namespace: namespace do
yield
end
else
2014-02-25 16:42:55 +00:00
swap Rails, application: engine.instance do
yield
end
end
end
2012-05-02 17:10:55 +00:00
class ActiveRecordEngineGeneratorTest < Rails::Generators::TestCase
2012-04-27 20:57:44 +00:00
tests ActiveRecord::Generators::DeviseGenerator
destination File.expand_path("../../tmp", __FILE__)
setup :prepare_destination
test "all files are properly created in rails 4.0" do
simulate_inside_engine(RailsEngine::Engine, RailsEngine) do
2012-04-27 20:57:44 +00:00
run_generator ["monster"]
assert_file "app/models/rails_engine/monster.rb", /devise/
assert_file "app/models/rails_engine/monster.rb" do |content|
assert_no_match %r{attr_accessible :email}, content
end
end
end
2012-04-27 20:57:44 +00:00
end
end