Sha256: 0459cbc10a94bd94d4234231eadfc76da9dfe63abe8f96cfce37229b8593a9e8

Contents?: true

Size: 1.48 KB

Versions: 2

Compression:

Stored size: 1.48 KB

Contents

require "./lib/roger/helpers/logging"
require "test/unit"
require File.dirname(__FILE__) + "/../../helpers/cli"

# Empty logging class
class MyLogger
  include Roger::Helpers::Logging

  attr_accessor :project
end

# Test Logging module
class LoggingTest < ::Test::Unit::TestCase
  include Roger::TestCli

  def setup
    @logger = MyLogger.new
    @logger.project = stub(
      options: {},
      shell: Thor::Shell::Color.new
    )
  end

  def test_log
    out, _err = capture { @logger.log(@logger, "log") }
    assert out.include?("MyLogger")
    assert out.include?("log")
  end

  def test_log_with_string_part
    out, _err = capture { @logger.log("string_test", "log") }
    assert out.include?("string_test")
    assert out.include?("log")
  end

  def test_log_with_block
    out, _err = capture do
      @logger.log(@logger, "log") do
        @logger.log(@logger, "indent")
      end
    end

    assert out.include?("MyLogger")
    assert out.include?("log")
    assert out.include?("  MyLogger : indent"), out
  end

  def test_debug
    out, _err = capture { @logger.debug(@logger, "debug") }
    assert_equal out, ""

    @logger.project.options[:verbose] = true
    out, _err = capture { @logger.debug(@logger, "debug") }
    assert out.include?("MyLogger")
    assert out.include?("debug")
  end

  # TODO: test if color is outputted as well.
  def test_warn
    out, _err = capture { @logger.warn(@logger, "warn") }
    assert out.include?("MyLogger")
    assert out.include?("warn")
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roger-1.2.2 test/unit/helpers/logging_test.rb
roger-1.2.1 test/unit/helpers/logging_test.rb