# frozen_string_literal: true

require “minitest” require “rails/test_unit/runner”

task default: :test

desc “Run all tests in test folder except system ones” task :test do

Rails::TestUnit::Runner.run_from_rake("test", Array(ENV["TEST"]))

end

namespace :test do

task :prepare do
  # Placeholder task for other Railtie and plugins to enhance.
  # If used with Active Record, this task runs before the database schema is synchronized.
end

task run: %w[test]

desc "Reset the database and run `bin/rails test`"
task :db do
  success = system({ "RAILS_ENV" => ENV.fetch("RAILS_ENV", "test") }, "rake", "db:test:prepare", "test")
  success || exit(false)
end

[
  *Rails::TestUnit::Runner::TEST_FOLDERS,
  :all,
  :generators,
  :units,
  :functionals,
  :system,
].each do |name|
  task name do
    Rails::TestUnit::Runner.run_from_rake("test:#{name}")
  end
end

end