Sha256: 04009d6d0e554ce4f3621cda19cfb8395f9abd52ead566b03d1f78f610d01e5c

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require "much-plugin"
require "scmd"

module GGem

  module CmdTestsHelpers
    include MuchPlugin

    plugin_included do
      setup do
        ENV["SCMD_TEST_MODE"] = "1"

        @cmd_spy = nil
        Scmd.reset

        @exp_cmds_run = []
      end
      teardown do
        Scmd.reset
        ENV.delete("SCMD_TEST_MODE")
      end

      private

      def assert_exp_cmds_run(&run_cmd_block)
        cmd_str, exitstatus, stdout = run_cmd_block.call
        assert_equal @exp_cmds_run, Scmd.calls.map(&:cmd_str)

        assert_equal Scmd.calls.first.cmd_str,        cmd_str
        assert_equal Scmd.calls.first.cmd.exitstatus, exitstatus
        assert_equal Scmd.calls.first.cmd.stdout,     stdout
      end

      def assert_exp_cmds_error(cmd_error_class, &run_cmd_block)
        err_cmd_str = @exp_cmds_run.sample
        Scmd.add_command(err_cmd_str) do |cmd|
          cmd.exitstatus = 1
          cmd.stderr     = Factory.string
          @cmd_spy       = cmd
        end
        err = nil
        begin; run_cmd_block.call; rescue StandardError => err; end

        assert_kind_of cmd_error_class, err
        exp = "#{@cmd_spy.cmd_str}\n#{@cmd_spy.stderr}"
        assert_equal exp, err.message
      end

    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ggem-1.9.1 test/support/cmd_tests_helpers.rb
ggem-1.9.0 test/support/cmd_tests_helpers.rb