require 'spec_helper' describe Locomotive::Liquid::Tags::Nav do before(:each) do @home = FactoryGirl.build(:page) home_children = [ Locomotive::Page.new(:title => 'Child #1', :fullpath => 'child_1', :slug => 'child_1', :published => true), Locomotive::Page.new(:title => 'Child #2', :fullpath => 'child_2', :slug => 'child_2', :published => true) ] @home.stubs(:children_with_minimal_attributes).returns(home_children) @home.stubs(:children).returns(home_children) other_children = [ Locomotive::Page.new(:title => 'Child #2.1', :fullpath => 'child_2/sub_child_1', :slug => 'sub_child_1', :published => true), Locomotive::Page.new(:title => 'Child #2.2', :fullpath => 'child_2/sub_child_2', :slug => 'sub_child_2', :published => true), Locomotive::Page.new(:title => 'Unpublished #2.2', :fullpath => 'child_2/sub_child_unpublishd_2', :slug => 'sub_child_unpublished_2', :published => false), Locomotive::Page.new(:title => 'Templatized #2.3', :fullpath => 'child_2/sub_child_template_3', :slug => 'sub_child_template_3', :published => true, :templatized => true), Locomotive::Page.new(:title => 'Unlisted #2.4', :fullpath => 'child_2/sub_child_unlisted_4', :slug => 'sub_child_unlisted_4', :published => true, :listed => false) ] @home.children.last.stubs(:children_with_minimal_attributes).returns(other_children) @home.children.last.stubs(:children).returns(other_children) pages = [@home] pages.stubs(:root).returns(pages) pages.stubs(:minimal_attributes).returns(pages) # iso @site = FactoryGirl.build(:site) @site.stubs(:pages).returns(pages) end context '#rendering' do it 'renders from site' do render_nav.should == '' end it 'renders from page' do render_nav('page').should == '' end it 'renders from parent' do (page = @home.children.last.children.first).stubs(:parent).returns(@home.children.last) output = render_nav 'parent', { :page => page } output.should == '' end it 'renders children to depth' do output = render_nav('site', {}, 'depth: 2') output.should match /