require 'rails_helper'
RSpec.describe "routes for signatures", type: :routes do
# Routes nested to /petition/:petition_id
it "doesn't route GET /petitions/1/signatures" do
expect(get("/petitions/1/signatures")).not_to be_routable
end
it "routes GET /petitions/1/signatures/new to signatures#new" do
expect(get("/petitions/1/signatures/new")).to route_to("signatures#new", petition_id: "1")
end
it "routes POST /petitions/1/signatures/new to signatures#confirm" do
expect(post("/petitions/1/signatures/new")).to route_to("signatures#confirm", petition_id: "1")
end
it "routes POST /petitions/1/signatures to signatures#create" do
expect(post("/petitions/1/signatures")).to route_to("signatures#create", petition_id: "1")
end
it "routes GET /petitions/1/signatures/thank-you to signatures#thank_you" do
expect(get("/petitions/1/signatures/thank-you")).to route_to("signatures#thank_you", petition_id: "1")
end
it "doesn't route GET /petitions/1/signatures/2" do
expect(post("/petitions/1/signatures/2")).not_to be_routable
end
it "doesn't route GET /petitions/1/signatures/2/edit" do
expect(post("/petitions/1/signatures/2/edit")).not_to be_routable
end
it "doesn't route PATCH /petitions/1/signatures/2" do
expect(patch("/petitions/1/signatures/2")).not_to be_routable
end
it "doesn't route PUT /petitions/1/signatures/2" do
expect(put("/petitions/1/signatures/2")).not_to be_routable
end
it "doesn't route DELETE /petitions/1/signatures/2" do
expect(delete("/petitions/1/signatures/2")).not_to be_routable
end
# un-nested routes
it "routes GET /signatures/:id/verify to signatures#verify" do -
expect(get("/signatures/1/verify?token=abcdef1234567890")).
to route_to("signatures#verify", id: "1", token: "abcdef1234567890")
expect(verify_signature_path("1", token: "abcdef1234567890")).to eq("/signatures/1/verify?token=abcdef1234567890")
end
it "routes GET /signatures/:id/unsubscribe to signatures#unsubscribe" do -
expect(get("/signatures/1/unsubscribe?token=abcdef1234567890")).
to route_to("signatures#unsubscribe", id: "1", token: "abcdef1234567890")
expect(unsubscribe_signature_path("1", token: "abcdef1234567890")).to eq("/signatures/1/unsubscribe?token=abcdef1234567890")
end
it "routes GET /signatures/:id/signed to signatures#signed" do -
expect(get("/signatures/1/signed?token=abcdef1234567890")).
to route_to("signatures#signed", id: "1", token: "abcdef1234567890")
expect(signed_signature_path("1", token: "abcdef1234567890")).to eq("/signatures/1/signed?token=abcdef1234567890")
end
it "doesn't route GET /signatures" do
expect(get("/signatures")).not_to be_routable
end
it "doesn't route GET /signatures/new" do
expect(get("/signatures/new")).not_to be_routable
end
it "doesn't route POST /signatures" do
expect(post("/signatures")).not_to be_routable
end
it "doesn't route GET /signatures/1" do
expect(post("/signatures/2")).not_to be_routable
end
it "doesn't route GET /signatures/1/edit" do
expect(post("/signatures/2/edit")).not_to be_routable
end
it "doesn't route PATCH /signatures/1" do
expect(patch("/signatures/2")).not_to be_routable
end
it "doesn't route DELETE /signatures/1" do
expect(delete("/signatures/2")).not_to be_routable
end
end