If there are only one conference in the future and it has a public splashpage, redirect to it in conferences#index. fix #1259

This commit is contained in:
David Sedeño 2017-12-06 23:45:52 +01:00
parent b97122097f
commit 5364142848
2 changed files with 38 additions and 3 deletions

View file

@ -6,6 +6,11 @@ class ConferencesController < ApplicationController
def index def index
@current = Conference.where('end_date >= ?', Date.current).reorder(start_date: :asc) @current = Conference.where('end_date >= ?', Date.current).reorder(start_date: :asc)
@antiquated = @conferences - @current @antiquated = @conferences - @current
redirect_to @current.first if @current.count == 1 and
@current.first.splashpage and
@current.first.splashpage.public==true
end end
def show def show

View file

@ -6,12 +6,42 @@ describe ConferencesController do
let(:room) { create(:room, venue: conference.venue) } let(:room) { create(:room, venue: conference.venue) }
describe 'GET #index' do describe 'GET #index' do
context 'without conference' do
it 'Response code is 200' do it 'Response code is 200' do
conference.destroy!
get :index get :index
expect(response.response_code).to eq(200) expect(response.response_code).to eq(200)
end end
end end
context 'with one next conference' do
describe 'with splashpage' do
it 'Response code is 200 when is not public' do
current = Conference.first
current.splashpage.public = false
current.splashpage.save
get :index
expect(response.response_code).to eq(200)
end
it 'Response code is 302 when is public' do
get :index
expect(response.response_code).to eq(302)
end
it 'Redirect to conference#show' do
get :index
expect(response).to redirect_to(conference_path(conference))
end
end
describe 'without splashpage' do
it 'Response code is 200' do
conference.splashpage.destroy!
get :index
expect(response.response_code).to eq(200)
end
end
end
end
describe 'GET #show' do describe 'GET #show' do
context 'conference made public' do context 'conference made public' do
it 'assigns the requested conference to conference' do it 'assigns the requested conference to conference' do