# frozen_string_literal: true

require "cmd/shared_examples/args_parse"
require "dev-cmd/ruby"

RSpec.describe Homebrew::DevCmd::Ruby do
  it_behaves_like "parseable arguments"

  it "executes ruby code with Homebrew's libraries loaded", :integration_test do
    expect { brew "ruby", "-e", "exit 0" }
      .to be_a_success
      .and not_to_output.to_stdout
      .and not_to_output.to_stderr
  end

  # Doesn't actually need Linux but only running there as integration tests are slow.
  describe "-e 'puts \"testball\".f.path'", :integration_test, :needs_linux do
    let!(:target) do
      target_path = setup_test_formula "testball"
      { path: target_path }
    end

    it "prints the path of a test formula" do
      expect { brew "ruby", "-e", "puts 'testball'.f.path" }
        .to be_a_success
        .and output(/^#{target[:path]}$/).to_stdout
        .and not_to_output.to_stderr
    end
  end
end
