redirect to frendly url for debates and proposals if needed
This commit is contained in:
@@ -13,6 +13,11 @@ class DebatesController < ApplicationController
|
||||
load_and_authorize_resource
|
||||
respond_to :html, :js
|
||||
|
||||
def show
|
||||
super
|
||||
redirect_to debate_path(@debate), status: :moved_permanently if request.path != debate_path(@debate)
|
||||
end
|
||||
|
||||
def vote
|
||||
@debate.register_vote(current_user, params[:value])
|
||||
set_debate_votes(@debate)
|
||||
|
||||
@@ -9,6 +9,11 @@ class Management::ProposalsController < Management::BaseController
|
||||
has_orders %w{confidence_score hot_score created_at most_commented random}, only: [:index, :print]
|
||||
has_orders %w{most_voted newest}, only: :show
|
||||
|
||||
def show
|
||||
super
|
||||
redirect_to management_proposal_path(@proposal), status: :moved_permanently if request.path != management_proposal_path(@proposal)
|
||||
end
|
||||
|
||||
def vote
|
||||
@proposal.register_vote(current_user, 'yes')
|
||||
set_proposal_votes(@proposal)
|
||||
|
||||
@@ -13,6 +13,11 @@ class ProposalsController < ApplicationController
|
||||
load_and_authorize_resource
|
||||
respond_to :html, :js
|
||||
|
||||
def show
|
||||
super
|
||||
redirect_to proposal_path(@proposal), status: :moved_permanently if request.path != proposal_path(@proposal)
|
||||
end
|
||||
|
||||
def index_customization
|
||||
@featured_proposals = Proposal.all.sort_by_confidence_score.limit(3) if (@search_terms.blank? && @tag_filter.blank?)
|
||||
if @featured_proposals.present?
|
||||
|
||||
@@ -11,6 +11,26 @@ describe DebatesController do
|
||||
SimpleCaptcha.always_pass = @original_captcha_pass_value
|
||||
end
|
||||
|
||||
describe "GET show" do
|
||||
|
||||
let(:debate) { create :debate }
|
||||
|
||||
context "when path matches" do
|
||||
it "should not redirect to real path" do
|
||||
get :show, id: debate.id
|
||||
expect(response).to_not redirect_to debates_path(debate)
|
||||
end
|
||||
end
|
||||
|
||||
context "when path does not match" do
|
||||
it "should redirect to real path" do
|
||||
expect(request).to receive(:path).exactly(3).times.and_return "/#{debate.id}-something-else"
|
||||
get :show, id: debate.id
|
||||
expect(response).to redirect_to debate_path(debate)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST create' do
|
||||
it 'should create an ahoy event' do
|
||||
|
||||
|
||||
37
spec/controllers/management/proposals_controller_spec.rb
Normal file
37
spec/controllers/management/proposals_controller_spec.rb
Normal file
@@ -0,0 +1,37 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe Management::ProposalsController do
|
||||
|
||||
describe "GET show" do
|
||||
|
||||
let(:proposal) { create :proposal }
|
||||
let(:user) { create :user, :level_two }
|
||||
|
||||
context "when path matches" do
|
||||
it "should not redirect to real path" do
|
||||
sign_in user
|
||||
login_managed_user(user)
|
||||
session[:manager] = {user_key: "31415926" , date: "20151031135905", login: "JJB033"}
|
||||
session[:document_type] = "1"
|
||||
session[:document_number] = "12345678Z"
|
||||
|
||||
get :show, id: proposal.id
|
||||
expect(response).to_not redirect_to management_proposals_path(proposal)
|
||||
end
|
||||
end
|
||||
|
||||
context "when path does not match" do
|
||||
it "should redirect to real path" do
|
||||
sign_in user
|
||||
login_managed_user(user)
|
||||
session[:manager] = {user_key: "31415926" , date: "20151031135905", login: "JJB033"}
|
||||
session[:document_type] = "1"
|
||||
session[:document_number] = "12345678Z"
|
||||
|
||||
expect(request).to receive(:path).exactly(2).times.and_return "/#{proposal.id}-something-else"
|
||||
get :show, id: proposal.id
|
||||
expect(response).to redirect_to management_proposal_path(proposal)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
24
spec/controllers/proposals_controller_spec.rb
Normal file
24
spec/controllers/proposals_controller_spec.rb
Normal file
@@ -0,0 +1,24 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe ProposalsController do
|
||||
|
||||
describe "GET show" do
|
||||
|
||||
let(:proposal) { create :proposal }
|
||||
|
||||
context "when path matches" do
|
||||
it "should not redirect to real path" do
|
||||
get :show, id: proposal.id
|
||||
expect(response).to_not redirect_to proposals_path(proposal)
|
||||
end
|
||||
end
|
||||
|
||||
context "when path does not match" do
|
||||
it "should redirect to real path" do
|
||||
expect(request).to receive(:path).exactly(3).times.and_return "/#{proposal.id}-something-else"
|
||||
get :show, id: proposal.id
|
||||
expect(response).to redirect_to proposal_path(proposal)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user