mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Adds Rails:Command for dev:cache
that has the same behaviour as the rake task
This commit is contained in:
parent
7db360acb2
commit
3e6d03d99e
2 changed files with 79 additions and 0 deletions
14
railties/lib/rails/commands/dev/dev_command.rb
Normal file
14
railties/lib/rails/commands/dev/dev_command.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "rails/dev_caching"
|
||||
|
||||
module Rails
|
||||
module Command
|
||||
class DevCommand < Base # :nodoc:
|
||||
desc "Toggle development mode caching on/off"
|
||||
def cache
|
||||
Rails::DevCaching.enable_by_file
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
65
railties/test/commands/dev_test.rb
Normal file
65
railties/test/commands/dev_test.rb
Normal file
|
@ -0,0 +1,65 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "isolation/abstract_unit"
|
||||
require "rails/command"
|
||||
|
||||
class Rails::Command::DevTest < ActiveSupport::TestCase
|
||||
setup :build_app
|
||||
teardown :teardown_app
|
||||
|
||||
test "`rails dev:cache` creates both caching and restart file when restart file doesn't exist and dev caching is currently off" do
|
||||
Dir.chdir(app_path) do
|
||||
assert_not File.exist?("tmp/caching-dev.txt")
|
||||
assert_not File.exist?("tmp/restart.txt")
|
||||
|
||||
assert_equal <<~OUTPUT, run_dev_cache_command
|
||||
Development mode is now being cached.
|
||||
OUTPUT
|
||||
|
||||
assert File.exist?("tmp/caching-dev.txt")
|
||||
assert File.exist?("tmp/restart.txt")
|
||||
end
|
||||
end
|
||||
|
||||
test "`rails dev:cache` creates caching file and touches restart file when dev caching is currently off" do
|
||||
Dir.chdir(app_path) do
|
||||
app_file("tmp/restart.txt", "")
|
||||
|
||||
assert_not File.exist?("tmp/caching-dev.txt")
|
||||
assert File.exist?("tmp/restart.txt")
|
||||
restart_file_time_before = File.mtime("tmp/restart.txt")
|
||||
|
||||
assert_equal <<~OUTPUT, run_dev_cache_command
|
||||
Development mode is now being cached.
|
||||
OUTPUT
|
||||
|
||||
assert File.exist?("tmp/caching-dev.txt")
|
||||
restart_file_time_after = File.mtime("tmp/restart.txt")
|
||||
assert_operator restart_file_time_before, :<, restart_file_time_after
|
||||
end
|
||||
end
|
||||
|
||||
test "`rails dev:cache` removes caching file and touches restart file when dev caching is currently on" do
|
||||
Dir.chdir(app_path) do
|
||||
app_file("tmp/caching-dev.txt", "")
|
||||
app_file("tmp/restart.txt", "")
|
||||
|
||||
assert File.exist?("tmp/caching-dev.txt")
|
||||
assert File.exist?("tmp/restart.txt")
|
||||
restart_file_time_before = File.mtime("tmp/restart.txt")
|
||||
|
||||
assert_equal <<~OUTPUT, run_dev_cache_command
|
||||
Development mode is no longer being cached.
|
||||
OUTPUT
|
||||
|
||||
assert_not File.exist?("tmp/caching-dev.txt")
|
||||
restart_file_time_after = File.mtime("tmp/restart.txt")
|
||||
assert_operator restart_file_time_before, :<, restart_file_time_after
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def run_dev_cache_command
|
||||
rails "dev:cache"
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue