Clone
require_relative 'generators_helper'
require 'locomotive/wagon/generators/site'
describe Locomotive::Wagon::Generators::Site do
class DummySite; end
let(:generator) { Locomotive::Wagon::Generators::Site }
let(:args) { ['my_site', DummySite, 'Dummy site generator' ] }
describe '#register' do
before { generator::List.instance._list = [] }
subject { generator.register(*args) }
context 'first time registring' do
it { should be_true }
it 'adds a site to the list' do
expect { subject }.to change(generator.list, :size).by(1)
end
end
context 'second time registring' do
before { generator.register(*args) }
it { should be_false }
it 'adds a site to the list' do
expect{subject}.to change(generator.list, :size).by(0)
end
end
end
describe '#get' do
before { generator.register(*args) }
context 'existing site skeleton' do
subject { generator.get('my_site') }
its(:klass) { should == DummySite }
its(:name) { should == :my_site }
its(:description) { should eq 'Dummy site generator' }
end
end
describe '#list_to_json' do
before do
generator::List.instance._list = []
generator.register('blank', Locomotive::Wagon::Generators::Site::Blank, 'Blank site')
end
subject { generator.list_to_json }
it 'returns json with array of hashes' do
JSON.parse(subject).first.should be_kind_of Hash
end
end
end