bootsnap/test/setup_test.rb

124 lines
3.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require("test_helper")
module Bootsnap
class SetupTest < Minitest::Test
def setup
@_old_env = ENV.to_h
@tmp_dir = Dir.mktmpdir("bootsnap-test")
ENV["BOOTSNAP_CACHE_DIR"] = @tmp_dir
end
def teardown
ENV.replace(@_old_env)
end
def test_default_setup
Bootsnap.expects(:setup).with(
cache_dir: @tmp_dir,
development_mode: true,
load_path_cache: true,
compile_cache_iseq: Bootsnap.iseq_cache_supported?,
compile_cache_yaml: true,
compile_cache_json: true,
ignore_directories: nil,
)
Bootsnap.default_setup
end
def test_default_setup_with_ENV_not_dev
ENV["ENV"] = "something"
Bootsnap.expects(:setup).with(
cache_dir: @tmp_dir,
development_mode: false,
load_path_cache: true,
compile_cache_iseq: Bootsnap.iseq_cache_supported?,
compile_cache_yaml: true,
compile_cache_json: true,
ignore_directories: nil,
)
Bootsnap.default_setup
end
def test_default_setup_with_DISABLE_BOOTSNAP_LOAD_PATH_CACHE
ENV["DISABLE_BOOTSNAP_LOAD_PATH_CACHE"] = "something"
Bootsnap.expects(:setup).with(
cache_dir: @tmp_dir,
development_mode: true,
load_path_cache: false,
compile_cache_iseq: Bootsnap.iseq_cache_supported?,
compile_cache_yaml: true,
compile_cache_json: true,
ignore_directories: nil,
)
Bootsnap.default_setup
end
def test_default_setup_with_DISABLE_BOOTSNAP_COMPILE_CACHE
ENV["DISABLE_BOOTSNAP_COMPILE_CACHE"] = "something"
Bootsnap.expects(:setup).with(
cache_dir: @tmp_dir,
development_mode: true,
load_path_cache: true,
compile_cache_iseq: false,
compile_cache_yaml: false,
compile_cache_json: false,
ignore_directories: nil,
)
Bootsnap.default_setup
end
def test_default_setup_with_DISABLE_BOOTSNAP
ENV["DISABLE_BOOTSNAP"] = "something"
Bootsnap.expects(:setup).never
Bootsnap.default_setup
end
def test_default_setup_with_BOOTSNAP_LOG
ENV["BOOTSNAP_LOG"] = "something"
Bootsnap.expects(:setup).with(
cache_dir: @tmp_dir,
development_mode: true,
load_path_cache: true,
compile_cache_iseq: Bootsnap.iseq_cache_supported?,
compile_cache_yaml: true,
compile_cache_json: true,
ignore_directories: nil,
)
Bootsnap.expects(:logger=).with($stderr.method(:puts))
Bootsnap.default_setup
end
def test_default_setup_with_BOOTSNAP_IGNORE_DIRECTORIES
ENV["BOOTSNAP_IGNORE_DIRECTORIES"] = "foo,bar"
Bootsnap.expects(:setup).with(
cache_dir: @tmp_dir,
development_mode: true,
load_path_cache: true,
compile_cache_iseq: Bootsnap.iseq_cache_supported?,
compile_cache_yaml: true,
compile_cache_json: true,
ignore_directories: %w[foo bar],
)
Bootsnap.default_setup
end
def test_unload_cache
Bootsnap.unload_cache!
end
end
end