Sha256: c94d8bb87c1b907994ce8ea05497206fa77d3af4a885053fe4c6909de26eed81

Contents?: true

Size: 1.91 KB

Versions: 6

Compression:

Stored size: 1.91 KB

Contents

require "spec_helper"

module Refinery
  module Pages
    describe MenuPresenter do

      let(:menu_presenter) do
        menu_items = []
        menu_items.stub(:roots)

        MenuPresenter.new(menu_items, view)
      end

      describe "config" do
        it "has default values" do
          expect(menu_presenter.roots).to eq(nil)
          expect(menu_presenter.dom_id).to eq("menu")
          expect(menu_presenter.css).to eq("menu clearfix")
          expect(menu_presenter.menu_tag).to eq(:nav)
          expect(menu_presenter.list_tag).to eq(:ul)
          expect(menu_presenter.list_item_tag).to eq(:li)
          expect(menu_presenter.selected_css).to eq(:selected)
          expect(menu_presenter.first_css).to eq(:first)
          expect(menu_presenter.last_css).to eq(:last)
        end
      end

      describe "#roots" do
        context "when #roots is configured" do
          it "returns config.roots" do
            menu_presenter.config.stub(:roots).and_return(["one", "two", "three"])
            expect(menu_presenter.roots).to eq(["one", "two", "three"])
          end
        end

        context "when #roots isn't configured" do
          it "returns roots from passed in collection" do
            menu_items = double()
            menu_items.stub(:roots).and_return(["three", "two", "one"])

            menu_presenter = MenuPresenter.new(menu_items, view)
            expect(menu_presenter.roots).to eq(["three", "two", "one"])
          end
        end
      end

      describe "#to_html" do
        it "returns menu items wrapped in html" do
          menu_items = Refinery::Menu.new(FactoryGirl.create(:page, :title => "Refinery CMS"))

          menu_presenter = MenuPresenter.new(menu_items, view)
          expect(menu_presenter.to_html).to eq(%Q{<nav class="menu clearfix" id="menu"><ul><li class="first last"><a href="/refinery-cms">Refinery CMS</a></li></ul></nav>})
        end
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
refinerycms-pages-2.1.5 spec/presenters/refinery/pages/menu_presenter_spec.rb
refinerycms-pages-2.1.4 spec/presenters/refinery/pages/menu_presenter_spec.rb
refinerycms-pages-2.1.3 spec/presenters/refinery/pages/menu_presenter_spec.rb
refinerycms-pages-2.1.2 spec/presenters/refinery/pages/menu_presenter_spec.rb
refinerycms-pages-2.1.1 spec/presenters/refinery/pages/menu_presenter_spec.rb
refinerycms-pages-2.1.0 spec/presenters/refinery/pages/menu_presenter_spec.rb