mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-12 01:07:09 +02:00
115 lines
3.1 KiB
Ruby
115 lines
3.1 KiB
Ruby
shared_examples_for "Fluentd::Agent has common behavior" do |klass|
|
|
describe "#extra_options" do
|
|
context "blank" do
|
|
let(:options) { {} }
|
|
it { instance.pid_file.should == described_class.default_options[:pid_file] }
|
|
it { instance.log_file.should == described_class.default_options[:log_file] }
|
|
it { instance.config_file.should == described_class.default_options[:config_file] }
|
|
end
|
|
|
|
context "given" do
|
|
let(:options) do
|
|
{
|
|
:pid_file => pid_file,
|
|
:log_file => log_file,
|
|
:config_file => config_file,
|
|
}
|
|
end
|
|
let(:pid_file) { "pid" }
|
|
let(:log_file) { "log" }
|
|
let(:config_file) { "config" }
|
|
|
|
it { instance.pid_file.should == pid_file }
|
|
it { instance.log_file.should == log_file }
|
|
it { instance.config_file.should == config_file }
|
|
end
|
|
end
|
|
|
|
describe "#logged_errors" do
|
|
before { instance.stub(:log_file).and_return(logfile) }
|
|
|
|
describe "#errors_since" do
|
|
let(:logged_time) { Time.parse('2014-05-27') }
|
|
let(:now) { Time.parse('2014-05-29') }
|
|
|
|
before { Timecop.freeze(now) }
|
|
after { Timecop.return }
|
|
|
|
subject { instance.errors_since(days.days.ago) }
|
|
|
|
context "has no errors" do
|
|
let(:logfile) { File.expand_path("./spec/support/fixtures/error0.log", Rails.root) }
|
|
let(:days) { 100 }
|
|
|
|
it "empty array" do
|
|
should be_empty
|
|
end
|
|
end
|
|
|
|
context "has errors" do
|
|
let(:logfile) { File.expand_path("./spec/support/fixtures/error2.log", Rails.root) }
|
|
|
|
context "unreachable since" do
|
|
let(:days) { 0 }
|
|
it { should be_empty }
|
|
end
|
|
|
|
context "reachable since" do
|
|
let(:days) { 100 }
|
|
|
|
it "contain stack trace" do
|
|
subject[0][:subject].should include("Address already in use - bind(2)")
|
|
end
|
|
|
|
it "newer(bottom) is first" do
|
|
one = Time.parse(subject[0][:subject])
|
|
two = Time.parse(subject[1][:subject])
|
|
one.should >= two
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#recent_errors" do
|
|
context "have 0 error log" do
|
|
let(:logfile) { File.expand_path("./spec/support/fixtures/error0.log", Rails.root) }
|
|
subject { instance.recent_errors(2) }
|
|
|
|
it "empty array" do
|
|
should be_empty
|
|
end
|
|
end
|
|
|
|
context "have 2 error log" do
|
|
let(:logfile) { File.expand_path("./spec/support/fixtures/error2.log", Rails.root) }
|
|
subject { instance.recent_errors(2) }
|
|
|
|
describe "limit" do
|
|
subject { instance.recent_errors(limit).length }
|
|
|
|
context "=1" do
|
|
let(:limit) { 1 }
|
|
it { should == limit }
|
|
end
|
|
|
|
context "=2" do
|
|
let(:limit) { 2 }
|
|
it { should == limit }
|
|
end
|
|
end
|
|
|
|
it "contain stack trace" do
|
|
subject[0][:subject].should include("Address already in use - bind(2)")
|
|
end
|
|
|
|
it "newer(bottom) is first" do
|
|
one = Time.parse(subject[0][:subject])
|
|
two = Time.parse(subject[1][:subject])
|
|
one.should >= two
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|