Repository URL to install this package:
|
Version:
1.0.0.pre ▾
|
require 'rails_helper'
describe ActiveAdmin::Namespace do
let(:application){ ActiveAdmin::Application.new }
context "when new" do
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
it "should have an application instance" do
expect(namespace.application).to eq application
end
it "should have a name" do
expect(namespace.name).to eq :admin
end
it "should have no resources" do
expect(namespace.resources).to be_empty
end
it "should not have any menu item" do
expect(namespace.fetch_menu(:default).children).to be_empty
end
end # context "when new"
describe "settings" do
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
it "should inherit the site title from the application" do
ActiveAdmin::Namespace.setting :site_title, "Not the Same"
expect(namespace.site_title).to eq application.site_title
end
it "should be able to override the site title" do
expect(namespace.site_title).to eq application.site_title
namespace.site_title = "My Site Title"
expect(namespace.site_title).to_not eq application.site_title
end
end
describe "#fetch_menu" do
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
it "returns the menu" do
expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
end
it "should have utility nav menu" do
expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
end
it "should raise an exception if the menu doesn't exist" do
expect {
namespace.fetch_menu(:not_a_menu_that_exists)
}.to raise_error(KeyError)
end
end
describe "#build_menu" do
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
it "should set the block as a menu build callback" do
namespace.build_menu do |menu|
menu.add label: "menu item"
end
expect(namespace.fetch_menu(:default)["menu item"]).to_not be_nil
end
it "should set a block on a custom menu" do
namespace.build_menu :test do |menu|
menu.add label: "menu item"
end
expect(namespace.fetch_menu(:test)["menu item"]).to_not be_nil
end
end
describe "utility navigation" do
let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
let(:menu) do
namespace.build_menu :utility_navigation do |menu|
menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
namespace.add_logout_button_to_menu menu, 1, class: "matt"
end
namespace.fetch_menu(:utility_navigation)
end
it "should have a logout button to the far left" do
expect(menu["Logout"]).to_not be_nil
expect(menu["Logout"].priority).to eq 1
end
it "should have a static link with a target of :blank" do
expect(menu["ActiveAdmin.info"]).to_not be_nil
expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
end
end
end