spec/mascot-rails_spec.rb in mascot-rails-0.1.3 vs spec/mascot-rails_spec.rb in mascot-rails-0.1.4
- old
+ new
@@ -1,9 +1,24 @@
require "spec_helper"
require "rails"
require "mascot-rails"
+describe Mascot do
+ context "default configuration" do
+ subject{ Mascot.configuration }
+ it "has sitemap" do
+ expect(subject.sitemap.file_path).to eql(Rails.root.join("app/pages"))
+ end
+ it "has Rails.application as parent engine" do
+ expect(subject.parent_engine).to eql(Rails.application)
+ end
+ it "has routes enabled by default" do
+ expect(subject.routes).to be true
+ end
+ end
+end
+
describe Mascot::RouteConstraint do
let(:sitemap) { Mascot::Sitemap.new(file_path: "spec/pages") }
let(:route_constraint) { Mascot::RouteConstraint.new(sitemap) }
context "#matches?" do
@@ -56,8 +71,35 @@
context "non-existent page" do
it "is status 404" do
expect {
get :show, path: "/non-existent"
}.to raise_exception(ActionController::RoutingError)
+ end
+ end
+end
+
+describe "Mascot routes", type: :routing do
+ context "routes enabled" do
+ before do
+ Mascot.configuration.routes = true
+ Rails.application.reload_routes!
+ end
+ it "generates link" do
+ expect(page_path("hi")).to eql("/hi")
+ end
+ it "is routable" do
+ expect(get("/hi")).to route_to(controller: "mascot/sitemap", action: "show", path: "hi")
+ end
+ end
+ context "routes disabled" do
+ before do
+ Mascot.configuration.routes = false
+ Rails.application.reload_routes!
+ end
+ it "is not routable" do
+ expect(get("/hi")).to_not be_routable
+ end
+ it "does not generate link" do
+ expect{page_path("hi")}.to raise_exception(NoMethodError)
end
end
end