31 lines
949 B
Ruby
31 lines
949 B
Ruby
# 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
|
|
|