spec/services/logger/redis_spec.rb in services-1.0.0 vs spec/services/logger/redis_spec.rb in services-1.1.0

- old
+ new

@@ -1,9 +1,9 @@ require 'spec_helper' describe Services::Logger::Redis do - let(:tags) { %w(foo bar baz) } + let(:meta) { { foo: 'bar' } } let(:message) { "One day baby we'll be old" } let(:severity) { 'critical' } let(:key) { 'custom_log_key' } let(:redis) { Redis.new } let(:logger) { described_class.new(redis, key) } @@ -12,44 +12,59 @@ redis.lrange(key, 0, -1).map do |json| JSON.load json end end + def create_logs + (2.days.ago.to_i..Time.now.to_i).step(1.hour) do |timestamp| + time = Time.at(timestamp) + Timecop.freeze time do + logger.log time.to_s(:long), weekday: time.strftime('%a') + end + end + end + describe '#log' do it 'logs properly' do Timecop.freeze do payload = { 'time' => Time.now.to_i, 'message' => message, 'severity' => severity, - 'tags' => tags + 'meta' => meta.stringify_keys } expect do - logger.log message, tags, severity + logger.log message, meta, severity end.to change { log_entries }.from([]).to([payload]) end end end - describe '#clear' do + context 'when logs are present' do before do - (2.days.ago.to_i..Time.now.to_i).step(1.hour) do |timestamp| - time = Time.at(timestamp) - Timecop.freeze time do - tags = [time.strftime('%a')] - logger.log tags, time.to_s(:long) - end - end + create_logs expect(log_entries.size).to be > 0 end - it 'returns all log entries' do - expect(log_entries).to eq(logger.clear) + describe '#size' do + it 'returns the amount of logs' do + expect(logger.size).to eq(log_entries.size) + end end - it 'clears all log entries' do - expect do - logger.clear - end.to change { log_entries }.to([]) + describe '#fetch' do + it 'returns all logs' do + expect(logger.fetch).to eq(log_entries) + end + end + + describe '#clear' do + it 'returns all logs' do + expect(log_entries).to eq(logger.clear) + end + + it 'clears all log entries' do + expect { logger.clear }.to change { log_entries }.to([]) + end end end end