Sha256: e14c89f327886b7f6e68d746606836d6de2b6c587923548db1503759f6a978bc

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'

describe Locomotive::Steam::Liquid::Tags::Extends do

  let(:source)      { '{% extends parent %} ' }
  let(:page)        { instance_double('Page', title: 'About us') }
  let(:site)        { instance_double('Site', default_locale: :en) }
  let!(:listener)   { Liquid::SimpleEventsListener.new }
  let(:finder)      { Locomotive::Steam::ParentFinderService.new(instance_double('PageRepository', site: site, locale: :en)) }
  let(:parser)      { Locomotive::Steam::LiquidParserService.new }
  let(:options)     { { parent_finder: finder, page: page, parser: parser } }

  before do
    expect(finder.repository).to receive(:parent_of).with(page).and_return(parent)
  end

  describe 'no parent page found' do

    let(:parent)    { nil }
    let(:template)  { parse_template(source, options) }

    it { expect { template }.to raise_exception Locomotive::Steam::Liquid::PageNotFound }

  end

  describe 'parent page exists' do

    let!(:template) { parse_template(source, options) }

    let(:parent) { instance_double('Index', localized_attributes: { source: true, template: true }, source: { en: 'Hello world!' }, template: { en: nil }) }

    it { expect(listener.event_names.first).to eq 'steam.parse.extends' }
    it { expect(template.render).to eq 'Hello world!' }
    it { expect(options[:page]).to eq page }

  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
locomotivecms_steam-1.0.0.pre.beta.3 spec/unit/liquid/tags/extends_spec.rb
locomotivecms_steam-1.0.0.pre.beta.2 spec/unit/liquid/tags/extends_spec.rb
locomotivecms_steam-1.0.0.pre.beta.1 spec/unit/liquid/tags/extends_spec.rb
locomotivecms_steam-1.0.0.pre.alpha.3 spec/unit/liquid/tags/extends_spec.rb
locomotivecms_steam-1.0.0.pre.alpha.2 spec/unit/liquid/tags/extends_spec.rb
locomotivecms_steam-1.0.0.pre.alpha.1 spec/unit/liquid/tags/extends_spec.rb