Sha256: 82754dbf414033af0599a593ccb54e16cd92a7da88cd4b70c15315a6cf841c96

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

require 'woodhouse/extensions/progress'

describe Woodhouse::Progress do

  describe "JobWithProgress" do
    subject { Object.new.tap do |obj| obj.extend Woodhouse::Progress::JobWithProgress end }

    it "should provide a method for creating a StatusTicker" do
      subject.status_ticker("orz").should be_kind_of(Woodhouse::Progress::StatusTicker)
    end

  end

  describe "StatusTicker" do
    let(:sink) { double("progress sink") }
    let(:job) { 
      Object.new.tap do |obj|
        obj.extend Woodhouse::Progress::JobWithProgress
        obj.progress_sink = sink
      end
    }

    it "should take initial status and tick arguments" do
      ticker = job.status_ticker("orz", :top => 100, :start => 10, :status => "working")
      ticker.to_hash.should == { "orz" => { "top" => 100, "current" => 10, "status" => "working" } }
    end

    context "#tick" do
      
      it "should send progress updates" do
        ticker = job.status_ticker("orz")
        sink.should_receive(:update_job).with(job, { "orz" => { "status" => "funky", "current" => 1 } })
        ticker.tick(:status => "funky").value
      end

    end

 end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
woodhouse-0.1.2 spec/progress_spec.rb
woodhouse-0.1.1 spec/progress_spec.rb