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