Sha256: 9e6d633031e9c97c7aa1dfa5a37b507ba843a24a94faddd3437c9bfc2ed4a855

Contents?: true

Size: 1.48 KB

Versions: 2

Compression:

Stored size: 1.48 KB

Contents

describe SlackRubyBot::Loggable do
  let! :class_with_logger do
    Class.new(SlackRubyBot::Commands::Base) do
      def public_logger
        logger
      end
    end
  end
  let! :child_class_with_logger do
    Class.new(class_with_logger) do
      def public_logger
        logger
      end
    end
  end
  describe 'logger for class' do
    it do
      expect(class_with_logger.logger).to be_kind_of Logger
      expect(child_class_with_logger.logger).to be_kind_of Logger
    end
    it 'should be cached' do
      first_logger = class_with_logger.logger
      second_logger = class_with_logger.logger
      expect(first_logger.object_id).to eq second_logger.object_id
    end
    it 'should not be shared by a child class' do
      first_logger = class_with_logger.logger
      second_logger = child_class_with_logger.logger
      expect(first_logger.object_id).to_not eq second_logger.object_id
    end
  end
  describe 'logger for instance' do
    it do
      expect(class_with_logger.new.public_logger).to be_kind_of Logger
    end
    it 'should be cached' do
      first_logger = class_with_logger.new.public_logger
      second_logger = class_with_logger.new.public_logger
      expect(first_logger.object_id).to eq second_logger.object_id
    end
    it 'should not be shared by a child class' do
      first_logger = class_with_logger.new.public_logger
      second_logger = child_class_with_logger.new.public_logger
      expect(first_logger.object_id).to_not eq second_logger.object_id
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slack-ruby-bot-0.10.3 spec/slack-ruby-bot/support/loggable_spec.rb
slack-ruby-bot-0.10.2 spec/slack-ruby-bot/support/loggable_spec.rb