Sha256: 37fbd9681fc8ec5a077c1bb03f0bd589f540e77d961c094c860425af5b8b12a1

Contents?: true

Size: 1.94 KB

Versions: 32

Compression:

Stored size: 1.94 KB

Contents

# encoding: utf-8

require File.dirname(__FILE__) + '/../integration_helper'

require 'locomotive/wagon'
require 'locomotive/wagon/cli'

describe 'Locomotive::Wagon::Generators::Page' do

  before { make_working_copy_of_site(:blog) }
  after  { remove_working_copy_of_site(:blog) }

  let(:path)            { working_copy_of_site(:blog) }
  let(:fullpath)        { 'new-page' }
  let(:default_locales) { ['en', 'fr'] }
  let(:locales)         { nil }
  let(:page_options)    { { haml: false, locales: locales, default_locales: default_locales } }
  let(:options)         { { 'force_color' => true, 'path' => path, 'quiet' => true }.merge(page_options) }

  subject { Locomotive::Wagon.generate(:page, [fullpath, options.delete('path')], options) }

  describe 'wrong parameters' do

    describe 'empty locales' do

      let(:locales) { '' }

      it { expect { subject }.not_to raise_error }

    end

  end

  describe 'generating a page' do

    before { subject }

    it 'creates the page in the FS' do
      expect(File).to exist(page_path('new-page'))
    end

    it 'generates an header in YAML' do
      expect(read_page('new-page')).to include <<-EXPECTED
---
title: New-page
EXPECTED
    end

    describe 'other locales' do

      let(:locales) { 'en fr' }

      it 'creates the EN page in the FS' do
        expect(File).to exist(page_path('new-page'))
      end

      it 'creates the FR page in the FS' do
        expect(File).to exist(page_path('new-page.fr'))
      end

      describe 'separated by a comma' do

        let(:locales) { 'en,fr' }

        it 'creates the EN page in the FS' do
          expect(File).to exist(page_path('new-page'))
        end

        it 'creates the FR page in the FS' do
          expect(File).to exist(page_path('new-page.fr'))
        end

      end

    end

  end

  def page_path(slug)
    File.join(path, 'app', 'views', 'pages', "#{slug}.liquid")
  end

  def read_page(slug)
    File.read(page_path(slug))
  end

end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
locomotivecms_wagon-2.4.1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.4.0 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.4.0.rc2 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.4.0.rc1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.3.0 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.3.0.rc1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.2.0 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.2.0.rc3 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.2.0.rc2 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.2.0.rc1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.2.0.beta1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.1.1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.1.0 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.1.0.rc5 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.1.0.rc4 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.1.0.rc3 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.0.1 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.0.0 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.0.0.rc8 spec/integration/generators/page_spec.rb
locomotivecms_wagon-2.0.0.rc7 spec/integration/generators/page_spec.rb