spec/controllers/users/confirmations_controller_spec.rb
require "rails_helper"
describe Users::ConfirmationsController do
before do
request.env["devise.mapping"] = Devise.mappings[:user]
end
describe "GET show" do
it "returns a 404 code with a wrong token" do
expect { get :show, params: { token: "non_existent" } }.to raise_error ActiveRecord::RecordNotFound
end
it "returns a 422 code with a existent and used token" do
user = create(:user, confirmation_token: "token1")
get :show, params: { user: user, confirmation_token: "token1" }
expect(response).to have_http_status(:unprocessable_entity)
end
it "redirect to sign_in page with a existent and not used token" do
user = create(:user, confirmation_token: "token1", confirmed_at: "")
get :show, params: { user: user, confirmation_token: "token1" }
expect(response).to redirect_to(new_user_session_path)
end
end
end