aboutsummaryrefslogblamecommitdiffstats
path: root/railties/test/application/rake/tmp_test.rb
blob: 8423a98f84bc2c8403c3ec84f030292cb6ad392b (plain) (tree)
































                                                                  






                                                                


       
require "isolation/abstract_unit"

module ApplicationTests
  module RakeTests
    class TmpTest < ActiveSupport::TestCase
      include ActiveSupport::Testing::Isolation

      def setup
        build_app
      end

      def teardown
        teardown_app
      end

      test "tmp:clear clear cache, socket and screenshot files" do
        Dir.chdir(app_path) do
          FileUtils.mkdir_p("tmp/cache")
          FileUtils.touch("tmp/cache/cache_file")

          FileUtils.mkdir_p("tmp/sockets")
          FileUtils.touch("tmp/sockets/socket_file")

          FileUtils.mkdir_p("tmp/screenshots")
          FileUtils.touch("tmp/screenshots/fail.png")

          `rails tmp:clear`

          assert_not File.exist?("tmp/cache/cache_file")
          assert_not File.exist?("tmp/sockets/socket_file")
          assert_not File.exist?("tmp/screenshots/fail.png")
        end
      end

      test "tmp:clear should work if folder missing" do
        FileUtils.remove_dir("#{app_path}/tmp")
        errormsg = Dir.chdir(app_path) { `bin/rails tmp:clear` }
        assert_predicate $?, :success?
        assert_empty errormsg
      end
    end
  end
end