Repository URL to install this package:
|
Version:
1.0.0.pre ▾
|
require 'rails_helper'
module MockModuleToInclude
def self.included(dsl)
end
end
describe ActiveAdmin::DSL do
let(:application) { ActiveAdmin::Application.new }
let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
let(:dsl){ ActiveAdmin::DSL.new(resource_config) }
describe "#include" do
it "should call the included class method on the module that is included" do
expect(MockModuleToInclude).to receive(:included).with(dsl)
dsl.run_registration_block do
include MockModuleToInclude
end
end
end
describe '#action_item' do
before do
@default_items_count = resource_config.action_items.size
dsl.run_registration_block do
action_item :awesome, only: :show do
"Awesome ActionItem"
end
end
end
it "adds action_item to the action_items of config" do
expect(resource_config.action_items.size).to eq(@default_items_count + 1)
end
context 'DEPRECATED: when used without a name' do
it "is configured for only the show action" do
expect(ActiveAdmin::Deprecation).to receive(:warn).with(instance_of(String))
dsl.run_registration_block do
action_item only: :edit do
"Awesome ActionItem"
end
end
item = resource_config.action_items.last
expect(item.display_on?(:edit)).to be true
expect(item.display_on?(:index)).to be false
end
end
end
describe "#menu" do
it "should set the menu_item_options on the configuration" do
expect(resource_config).to receive(:menu_item_options=).with({parent: "Admin"})
dsl.run_registration_block do
menu parent: "Admin"
end
end
end
describe "#navigation_menu" do
it "should set the navigation_menu_name on the configuration" do
expect(resource_config).to receive(:navigation_menu_name=).with(:admin)
dsl.run_registration_block do
navigation_menu :admin
end
end
it "should accept a block" do
dsl = ActiveAdmin::DSL.new(resource_config)
dsl.run_registration_block do
navigation_menu { :dynamic_menu }
end
expect(resource_config.navigation_menu_name).to eq :dynamic_menu
end
end
describe "#sidebar" do
before do
dsl.config.sidebar_sections << ActiveAdmin::SidebarSection.new(:email)
end
it "add sidebar_section to the sidebar_sections of config" do
dsl.run_registration_block do
sidebar :help
end
expect(dsl.config.sidebar_sections.map(&:name)).to match_array([:filters, :email, :help])
end
end
describe "#batch_action" do
it "should add a batch action by symbol" do
dsl.run_registration_block do
config.batch_actions = true
batch_action :foo
end
expect(resource_config.batch_actions.map(&:sym)).to eq [:foo, :destroy]
end
it "should add a batch action by title" do
dsl.run_registration_block do
config.batch_actions = true
batch_action "foo bar"
end
expect(resource_config.batch_actions.map(&:sym)).to eq [:foo_bar, :destroy]
end
end
end