Sha256: 551c0370d28500c41f20e769aac9fe37b0ee353489ee19fb430e87a77fedd4d4

Contents?: true

Size: 1.6 KB

Versions: 1

Compression:

Stored size: 1.6 KB

Contents

require 'helper'
require 'stringio'

class MockNotifier < ::RiotNotifier::None
  def initialize
    super(StringIO.new)
  end

  def notify(color, msg)
    [ color, msg ]
  end

  ::RiotNotifier.order.delete(self)
end

context "RiotNotifier" do
  context "with MockNotifier" do
    setup do
      reporter = MockNotifier.new
      reporter.describe_context(Riot::Context.new("test") {})
      reporter
    end

    asserts("notifies failure in red") { topic.fail("desc", "failed") }.equals([:red, "FAILURE: failed"])
    asserts("notifies error in red") { topic.error("desc", bt!(ArgumentError.new("errored"))) }.equals([:red, "ERROR: errored"])
    asserts("doesn't display results with bad results") do
      topic.report("desc", [:fail, "failure"])
      topic.report("desc", [:error, bt!(ArgumentError.new("error"))])
      topic.results(23.0)
    end.nil

    context "displays results without bad results" do
      asserts("in green") do
        topic.results(0.0).first
      end.equals(:green)
      asserts("correctly") do
        topic.results(0.0).last
      end.matches(/0 passes, 0 failures, 0 errors in 0.000000 seconds/)
    end
  end # with MockNotifier

  context "with RedgreenBinary" do
    setup do
      Class.new(RiotNotifier::RedgreenBinary) do
        def exec(string)
          string
        end
      end.new
    end

    asserts("notify green hello world") { topic.notify(:red, "hello world") }.matches(/red "hello world"/)
    asserts("escape <") { topic.notify(:red, "<Topic>") }.matches(/&lt;Topic>/)
    asserts("quote double quotes") { topic.notify(:red, %{"errored"}) }.matches(/\\"errored\\"/)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
riot_notifier-0.0.7 test/test_riot_notifier.rb