Skip to content
This repository has been archived by the owner on Dec 8, 2020. It is now read-only.

Commit

Permalink
More tests
Browse files Browse the repository at this point in the history
  • Loading branch information
binarylogic committed Dec 15, 2016
1 parent 047bc01 commit 0ad19e2
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 1 deletion.
58 changes: 58 additions & 0 deletions spec/timber/log_devices/http/triggered_buffer_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
require "spec_helper"

describe Timber::LogDevices::HTTP::TriggeredBuffer do
describe "#write" do
it "should trigger a buffer overflow for large messages" do
buffer = described_class.new(:payload_limit_bytes => 10)
msg = "a" * 11
expect(buffer).to receive(:handle_overflow).exactly(1).times.with(msg)
buffer.write(msg)
end

it "should trigger a buffer overflow when exceeding the limit" do
buffer = described_class.new(:limit_bytes => 10)
msg = "a" * 11
expect(buffer).to receive(:handle_overflow).exactly(1).times.with(msg)
buffer.write(msg)
end

it "should start a new buffer when empty and append when not" do
buffer = described_class.new
result = buffer.write("test")
expect(result).to be_nil
expect(buffer.send(:writable_buffer)).to eq("test")
result = buffer.write("again")
expect(result).to be_nil
expect(buffer.send(:writable_buffer)).to eq("testagain")
end

it "should return the old buffer when it has exceeded it's limit" do
buffer = described_class.new(:payload_limit_bytes => 10)
msg = "a" * 6
result = buffer.write(msg)
expect(result).to be_nil
result = buffer.write(msg)
expect(result).to eq(msg)
expect(result).to be_frozen
end

it "should write a new buffer when the latest is frozen" do
buffer = described_class.new
buffer.write("test")
result = buffer.reserve
expect(result).to eq("test")
buffer.write("again")
expect(buffer.send(:writable_buffer)).to eq("again")
end
end

describe "#reserve" do
it "should reserve the latest buffer and freeze it" do
buffer = described_class.new
buffer.write("test")
result = buffer.reserve
expect(result).to eq("test")
expect(result).to be_frozen
end
end
end
2 changes: 1 addition & 1 deletion timberio.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
s.authors = ["Timber Technologies, Inc."]
s.email = ["hi@timber.io"]
s.homepage = "http://timber.io"
s.homepage = "https://github.com/timberio/timber-ruby"
s.summary = "Instant log gratification."

s.required_ruby_version = '>= 1.9.0'
Expand Down

0 comments on commit 0ad19e2

Please sign in to comment.