Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removed use of mocha from railties actions_test #20357

Merged
merged 1 commit into from
Jun 1, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
79 changes: 52 additions & 27 deletions railties/test/generators/actions_test.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require 'generators/generators_test_helper'
require 'rails/generators/rails/app/app_generator'
require 'env_helpers'
require 'mocha/setup' # FIXME: stop using mocha
require 'minitest/mock'

class ActionsTest < Rails::Generators::TestCase
include GeneratorsTestHelper
Expand All @@ -12,11 +12,13 @@ class ActionsTest < Rails::Generators::TestCase

def setup
Rails.application = TestApp::Application
@mock_generator = Minitest::Mock.new
super
end

def teardown
Rails.application = TestApp::Application.instance
@mock_generator.verify
end

def test_invoke_other_generator_with_shortcut
Expand Down Expand Up @@ -140,13 +142,18 @@ def test_environment_with_block_should_include_block_contents_in_environment_ini
end

def test_git_with_symbol_should_run_command_using_git_scm
generator.expects(:run).once.with('git init')
action :git, :init
@mock_generator.expect(:call, nil, ['git init'])
generator.stub(:run, @mock_generator) do
action :git, :init
end
end

def test_git_with_hash_should_run_each_command_using_git_scm
generator.expects(:run).times(2)
action :git, rm: 'README', add: '.'
@mock_generator.expect(:call, nil, ["git rm README"])
@mock_generator.expect(:call, nil, ["git add ."])
generator.stub(:run, @mock_generator) do
action :git, rm: 'README', add: '.'
end
end

def test_vendor_should_write_data_to_file_in_vendor
Expand All @@ -170,46 +177,60 @@ def test_initializer_should_write_date_to_file_in_config_initializers
end

def test_generate_should_run_script_generate_with_argument_and_options
generator.expects(:run_ruby_script).once.with('bin/rails generate model MyModel', verbose: false)
action :generate, 'model', 'MyModel'
@mock_generator.expect(:call, nil, ['bin/rails generate model MyModel', verbose: false])
generator.stub(:run_ruby_script, @mock_generator) do
action :generate, 'model', 'MyModel'
end
end

def test_rake_should_run_rake_command_with_default_env
generator.expects(:run).once.with("rake log:clear RAILS_ENV=development", verbose: false)
with_rails_env nil do
action :rake, 'log:clear'
@mock_generator.expect(:call, nil, ["rake log:clear RAILS_ENV=development", verbose: false])
generator.stub(:run, @mock_generator) do
with_rails_env nil do
action :rake, 'log:clear'
end
end
end

def test_rake_with_env_option_should_run_rake_command_in_env
generator.expects(:run).once.with('rake log:clear RAILS_ENV=production', verbose: false)
action :rake, 'log:clear', env: 'production'
@mock_generator.expect(:call, nil, ['rake log:clear RAILS_ENV=production', verbose: false])
generator.stub(:run, @mock_generator) do
action :rake, 'log:clear', env: 'production'
end
end

def test_rake_with_rails_env_variable_should_run_rake_command_in_env
generator.expects(:run).once.with('rake log:clear RAILS_ENV=production', verbose: false)
with_rails_env "production" do
action :rake, 'log:clear'
@mock_generator.expect(:call, nil, ['rake log:clear RAILS_ENV=production', verbose: false])
generator.stub(:run, @mock_generator) do
with_rails_env "production" do
action :rake, 'log:clear'
end
end
end

def test_env_option_should_win_over_rails_env_variable_when_running_rake
generator.expects(:run).once.with('rake log:clear RAILS_ENV=production', verbose: false)
with_rails_env "staging" do
action :rake, 'log:clear', env: 'production'
@mock_generator.expect(:call, nil, ['rake log:clear RAILS_ENV=production', verbose: false])
generator.stub(:run, @mock_generator) do
with_rails_env "staging" do
action :rake, 'log:clear', env: 'production'
end
end
end

def test_rake_with_sudo_option_should_run_rake_command_with_sudo
generator.expects(:run).once.with("sudo rake log:clear RAILS_ENV=development", verbose: false)
with_rails_env nil do
action :rake, 'log:clear', sudo: true
@mock_generator.expect(:call, nil, ["sudo rake log:clear RAILS_ENV=development", verbose: false])
generator.stub(:run, @mock_generator) do
with_rails_env nil do
action :rake, 'log:clear', sudo: true
end
end
end

def test_capify_should_run_the_capify_command
generator.expects(:run).once.with('capify .', verbose: false)
action :capify!
@mock_generator.expect(:call, nil, ['capify .', verbose: false])
generator.stub(:run, @mock_generator) do
action :capify!
end
end

def test_route_should_add_data_to_the_routes_block_in_config_routes
Expand Down Expand Up @@ -245,15 +266,19 @@ def test_route_should_add_data_with_an_new_line

def test_readme
run_generator
Rails::Generators::AppGenerator.expects(:source_root).times(2).returns(destination_root)
assert_match "application up and running", action(:readme, "README.md")
2.times { @mock_generator.expect(:call, destination_root,[]) }
Rails::Generators::AppGenerator.stub(:source_root, @mock_generator) do
assert_match "application up and running", action(:readme, "README.md")
end
end

def test_readme_with_quiet
generator(default_arguments, quiet: true)
run_generator
Rails::Generators::AppGenerator.expects(:source_root).times(2).returns(destination_root)
assert_no_match "application up and running", action(:readme, "README.md")
2.times { @mock_generator.expect(:call, destination_root,[]) }
Rails::Generators::AppGenerator.stub(:source_root, @mock_generator) do
assert_no_match "application up and running", action(:readme, "README.md")
end
end

def test_log
Expand Down