Sha256: bdd37a908ea2bcddfe3af8ad68ca60754ba36429bf8811f280868bcf331ba030

Contents?: true

Size: 800 Bytes

Versions: 33

Compression:

Stored size: 800 Bytes

Contents

require "spec_helper"

describe Lita::Timer do
  let(:queue) { Queue.new }

  before { allow(subject).to receive(:sleep) }

  after { subject.stop }

  it "runs single timers" do
    subject = described_class.new { queue.push(true) }
    expect(subject).to receive(:sleep).with(0).once
    subject.start
    expect(queue.pop(true)).to be(true)
    expect { queue.pop(true) }.to raise_error(ThreadError)
  end

  it "runs recurring timers" do
    halt = false
    subject = described_class.new(interval: 1, recurring: true) do |timer|
      queue.push(true)
      timer.stop if halt
      halt = true
    end
    expect(subject).to receive(:sleep).with(1).twice
    subject.start
    2.times { expect(queue.pop(true)).to be(true) }
    expect { queue.pop(true) }.to raise_error(ThreadError)
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
lita-4.8.0 spec/lita/timer_spec.rb
lita-4.8.0.beta1 spec/lita/timer_spec.rb
lita-4.7.1 spec/lita/timer_spec.rb
lita-4.7.0 spec/lita/timer_spec.rb
lita-4.6.1 spec/lita/timer_spec.rb
lita-4.6.0 spec/lita/timer_spec.rb
lita-4.5.0 spec/lita/timer_spec.rb
lita-4.4.3 spec/lita/timer_spec.rb
lita-4.4.2 spec/lita/timer_spec.rb
lita-4.4.1 spec/lita/timer_spec.rb
lita-4.4.0 spec/lita/timer_spec.rb
lita-4.3.2 spec/lita/timer_spec.rb
lita-4.3.1 spec/lita/timer_spec.rb
lita-4.3.0 spec/lita/timer_spec.rb
lita-4.2.1 spec/lita/timer_spec.rb
lita-4.2.0 spec/lita/timer_spec.rb
lita-4.1.0 spec/lita/timer_spec.rb
lita-4.0.4 spec/lita/timer_spec.rb
lita-4.0.3 spec/lita/timer_spec.rb
lita-4.0.2 spec/lita/timer_spec.rb