Sha256: 851f2ea2da6346ba59b85f156c57603ca52824fcdb507f9d1d0618f25a4db376

Contents?: true

Size: 1.85 KB

Versions: 19

Compression:

Stored size: 1.85 KB

Contents

require 'spec_helper'

describe Locomotive::Steam::Liquid::Drops::Site do

  let(:services)  { Locomotive::Steam::Services.build_instance }
  let(:context)   { ::Liquid::Context.new({}, {}, { services: services }) }
  let(:site)      { instance_double('Site', handle: 'locomotive', name: 'Locomotive', domains: ['acme.org'], seo_title: 'seo title', meta_keywords: 'keywords', meta_description: 'description', localized_attributes: {}, asset_host: 'http://asset.dev') }
  let(:drop)      { described_class.new(site).tap { |d| d.context = context } }

  subject { drop }

  it 'gives access to general attributes' do
    expect(subject.name).to eq 'Locomotive'
    expect(subject.handle).to eq 'locomotive'
    expect(subject.seo_title).to eq 'seo title'
    expect(subject.meta_keywords).to eq 'keywords'
    expect(subject.meta_description).to eq 'description'
    expect(subject.domains).to eq ['acme.org']
    expect(subject.asset_host).to eq 'http://asset.dev'
  end

  describe '#index' do

    let(:index) { instance_double('IndexPage', to_liquid: { 'title' => 'Home page' }) }

    before do
      allow(services.repositories.page).to receive(:root).and_return(index)
    end

    it { expect(subject.index).to eq({ 'title' => 'Home page' }) }

  end

  describe '#pages' do

    let(:pages) do
      [
        instance_double('AboutUsPage', to_liquid: { 'title' => 'About us' }),
        instance_double('ContactPage', to_liquid: { 'title' => 'Contact' })
      ]
    end

    before do
      allow(services.repositories.page).to receive(:all).and_return(pages)
    end

    it { expect(subject.pages).to eq([{ 'title' => 'About us' }, { 'title' => 'Contact' }]) }

    it "doesn't memoize it" do
      subject.pages
      allow(services.repositories.page).to receive(:all).and_return([pages.first])
      expect(subject.pages).to eq([{ 'title' => 'About us' }])
    end

  end

end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
locomotivecms_steam-1.8.0.alpha2 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.8.0.alpha1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.7.1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.7.0 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.6.1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.6.0 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.6.0.rc1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.6.0.beta1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.3 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.2 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.0 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.0.rc1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.0.rc0 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.0.beta3 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.0.beta2 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.5.0.beta1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.4.1 spec/unit/liquid/drops/site_spec.rb
locomotivecms_steam-1.4.0 spec/unit/liquid/drops/site_spec.rb