site generator specs

arnaud sellenet committed Apr 08, 2014
commit cb1e17593f3c7b03cfa58631c3aea3d40b0d7279
Showing 1 changed file with 52 additions and 0 deletions
spec/generators/site_spec.rb +52 -0
@@ @@ -0,0 +1,52 @@
+ 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
\ No newline at end of file