spec/unit/routing_spec.rb in activeadmin-0.1.1 vs spec/unit/routing_spec.rb in activeadmin-0.2.0
- old
+ new
@@ -1,12 +1,88 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe ActiveAdmin, "Routing" do
-
- subject { Admin::PostsController.new }
- it { should respond_to(:admin_posts_path) }
- it { should respond_to(:admin_post_path) }
- it { should respond_to(:new_admin_post_path) }
- it { should respond_to(:edit_admin_post_path) }
+ before :each do
+ load_defaults!
+ reload_routes!
+ end
+
+ include Rails.application.routes.url_helpers
+
+ describe "dashboard" do
+ context "when in admin namespace" do
+ it "should route the admin dashboard" do
+ admin_dashboard_path.should == "/admin"
+ end
+ end
+ context "when in root namespace" do
+ before(:each) do
+ load_resources { ActiveAdmin.register(Post, :namespace => false) }
+ end
+ it "should route the root dashboard" do
+ dashboard_path.should == "/"
+ end
+ end
+ end
+
+ describe "standard resources" do
+ context "when in admin namespace" do
+ it "should route the index path" do
+ admin_posts_path.should == "/admin/posts"
+ end
+
+ it "should route the show path" do
+ admin_post_path(1).should == "/admin/posts/1"
+ end
+
+ it "should route the new path" do
+ new_admin_post_path.should == "/admin/posts/new"
+ end
+
+ it "should route the edit path" do
+ edit_admin_post_path(1).should == "/admin/posts/1/edit"
+ end
+ end
+
+ context "when in root namespace" do
+ before(:each) do
+ load_resources { ActiveAdmin.register(Post, :namespace => false) }
+ end
+
+ it "should route the index path" do
+ posts_path.should == "/posts"
+ end
+
+ it "should route the show path" do
+ post_path(1).should == "/posts/1"
+ end
+
+ it "should route the new path" do
+ new_post_path.should == "/posts/new"
+ end
+
+ it "should route the edit path" do
+ edit_post_path(1).should == "/posts/1/edit"
+ end
+ end
+ end
+
+ describe "belongs to resource" do
+ it "should route the nested index path" do
+ admin_user_posts_path(1).should == "/admin/users/1/posts"
+ end
+
+ it "should route the nested show path" do
+ admin_user_post_path(1,2).should == "/admin/users/1/posts/2"
+ end
+
+ it "should route the nested new path" do
+ new_admin_user_post_path(1).should == "/admin/users/1/posts/new"
+ end
+
+ it "should route the nested edit path" do
+ edit_admin_user_post_path(1,2).should == "/admin/users/1/posts/2/edit"
+ end
+ end
end