Sha256: df4eae198bc62e3b2f69f7d66a9c60fb22bd877c4bb8c85f121ae0bf06b129f6

Contents?: true

Size: 1.56 KB

Versions: 14

Compression:

Stored size: 1.56 KB

Contents

require 'rails_helper'
require 'active_admin/menu'
require 'active_admin/menu_item'

include ActiveAdmin

RSpec.describe ActiveAdmin::Menu do

  context "with no items" do
    it "should have an empty item collection" do
      menu = Menu.new
      expect(menu.items).to be_empty
    end

    it "should accept new items" do
      menu = Menu.new
      menu.add label: "Dashboard"
      expect(menu.items.first.label).to eq "Dashboard"
    end
  end

  context "with many items" do
    let(:menu) do
      Menu.new do |m|
        m.add label: "Dashboard"
        m.add label: "Blog"
      end
    end

    it "should give access to the menu item as an array" do
      expect(menu['Dashboard'].label).to eq 'Dashboard'
    end
  end

  describe "adding items with children" do
    it "should add an empty item if the parent does not exist" do
      menu = Menu.new
      menu.add parent: "Admin", label: "Users"

      expect(menu["Admin"]["Users"]).to be_an_instance_of(ActiveAdmin::MenuItem)
    end

    it "should add a child to a parent if it exists" do
      menu = Menu.new
      menu.add parent: "Admin", label: "Users"
      menu.add parent: "Admin", label: "Projects"

      expect(menu["Admin"]["Projects"]).to be_an_instance_of(ActiveAdmin::MenuItem)
    end

    it "should assign children regardless of resource file load order" do
      menu = Menu.new
      menu.add parent: "Users", label: "Posts"
      menu.add label: "Users", url: "/some/url"

      expect(menu["Users"].url).to eq "/some/url"
      expect(menu["Users"]["Posts"]).to be_a ActiveAdmin::MenuItem
    end
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
activeadmin-rails-1.7.1 spec/unit/menu_spec.rb
activeadmin-rails-1.7.0 spec/unit/menu_spec.rb
activeadmin-rb-1.6.0 spec/unit/menu_spec.rb
activeadmin-rb-1.5.2 spec/unit/menu_spec.rb
activeadmin-rb-1.5.1 spec/unit/menu_spec.rb
activeadmin-rb-1.5.0 spec/unit/menu_spec.rb
activeadmin_addons-1.7.1 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb
activeadmin-rb-1.4.0 spec/unit/menu_spec.rb
activeadmin_addons-1.7.0 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb
activeadmin_addons-1.6.0 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb
activeadmin_addons-1.5.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb
activeadmin_addons-1.4.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb
activeadmin_addons-1.3.0 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb
activeadmin_addons-1.2.0 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/spec/unit/menu_spec.rb