You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: cli_test.rb
    path of file: ./repos/gel/test
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

require "test_helper"
require "gel/command"

class CLITest < Minitest::Test
  def setup
    super

    @original_env = ENV.map { |k, v| [k, v.dup] }.to_h

    ENV["GEL_GEMFILE"] = nil
    ENV["GEL_LOCKFILE"] = nil
    ENV["RUBYLIB"] = nil
    ENV["RUBYOPT"] = nil
    Gel::Environment.gemfile = nil
  end

  def teardown
    (@original_env.keys | ENV.keys).each do |key|
      ENV[key
    
  def test_exec_nonruby
    Dir.mktmpdir do |dir|
      dir = File.realpath(dir)

      File.write("#{dir}/Gemfile", "")
      File.write("#{dir}/Gemfile.lock", "")
      File.write("#{dir}/shell-executable", "#!/bin/sh\n")
      FileUtils.chmod 0755, "#{dir}/shell-executable"

      Kernel.expects(:exec).with do |*command|
        assert_equal [["shell-executable", "shell-executable"], "some", "args"], command

        assert_equal "#{dir}/Gemfile", ENV["GEL_GEMFILE"]
        assert_equal "#{dir}/Gemfile.lock", ENV["GEL_LOCKFILE"]
        assert_nil ENV["RUBYOPT"]
        assert_equal File.expand_path("../slib", __dir__), ENV["RUBYLIB"]
      end.throws(:exit)

      Dir.chdir(dir) do
        catch(:exit) do
          Gel::Command.run(%W(exec shell-executable some args))
        end
      end
    end
  end
end