Sha256: 3ae346be1c333bd2ee3cf8a9584466df43bfc1b8c02311916864e9ed97ee8772

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require 'spec_helper'
require 'seory/dsl'

describe Seory::Dsl do
  let(:seory_class) { Object.new.extend(Seory::Dsl) }
  before do
    seory_class.describe do
      match 'products#index' do
        title 'My Great Product'
        h1    'Great Product Name'

        misc :option, 'static optional val'
      end

      default do
        title 'Misc site'
        h1    { controller.controller_name.upcase }

        misc(:option) { "dynamic option name at #{controller.controller_name}" }
      end
    end
  end

  subject(:seory) { seory_class.lookup(controller) }

  context 'at products#index' do
    let(:controller) { double('controller', controller_name: 'products', action_name: 'index') }

    specify { expect(seory.title).to eq 'My Great Product' }
    specify { expect(seory.h1).to eq 'Great Product Name' }
    specify { expect(seory.misc(:option)).to eq 'static optional val' }
  end

  context 'at misc#show' do
    let(:controller) { double('controller', controller_name: 'misc', action_name: 'show') }

    specify { expect(seory.h1).to eq 'MISC' }
    specify { expect(seory.misc(:option)).to eq 'dynamic option name at misc' }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
seory-0.0.3 spec/seory/dsl_spec.rb