# frozen_string_literal: true require_relative "test_helper" class ToolchainTest < Minitest::Test def test_reports_both_missing_dependencies toolchain = FeatherCaseWizard::Toolchain.new(env: {"PATH" => ""}) error = assert_raises(FeatherCaseWizard::ToolError) { toolchain.check! } assert_match(/OpenSCAD/, error.message) assert_match(/Blender/, error.message) assert_match(/apt-get/, error.message) end def test_environment_overrides_are_used Dir.mktmpdir do |directory| executable = File.join(directory, "tool") File.write(executable, "#!/bin/sh\nexit 0\n") FileUtils.chmod(0o755, executable) toolchain = FeatherCaseWizard::Toolchain.new( env: {"PATH" => "", "OPENSCAD" => executable, "BLENDER" => executable} ) assert_equal executable, toolchain.openscad assert_equal executable, toolchain.blender assert_same toolchain, toolchain.check! end end end