Sha256: 656514e9b4e01e3cb4ac24548529c55e4a2448f2df92f77818f8654e9c6d8fdf

Contents?: true

Size: 956 Bytes

Versions: 1

Compression:

Stored size: 956 Bytes

Contents

require 'spec_helper'

describe SimpleDecorator::Base do
  subject do
    DummyBaseDecorator.new DummyBase.new
  end

  it 'includes translation helpers' do
    expect(DummyBaseDecorator.ancestors).to include ActionView::Helpers::TranslationHelper
  end

  it 'includes number helpers' do
    expect(DummyBaseDecorator.ancestors).to include ActionView::Helpers::NumberHelper
  end

  context 'when decorator has method' do
    it 'decorates method' do
      expect(subject.say).to eq 'Bar is foo!'
    end

    it 'calls try on decorator itself' do
      expect(subject.try(:say)).to eq 'Bar is foo!'
    end
  end

  context 'when decorator has no method' do
    it 'delegates to component' do
      expect(subject.is_it?).to be_truthy
    end
  end
end

class DummyBaseDecorator < SimpleDecorator::Base
  def say
    "Bar is #{super}!"
  end
end

class DummyBase
  include SimpleDecorator::Plug

  def say
    :foo
  end

  def is_it?
    true
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
unico-training-7.8.0 spec/lib/simple_decorator/base_spec.rb