diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index eff09b35..1b6a0373 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,6 +1,14 @@ class HomeController < ApplicationController + before_filter :respond_to_options + def index @today = Date.current @current = Conference.where("end_date >= ?", @today).order("start_date ASC") end + + def respond_to_options + respond_to do |format| + format.html { head :ok } + end if request.options? + end end diff --git a/config/routes.rb b/config/routes.rb index 25410c11..e85dc42e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -114,6 +114,5 @@ Osem::Application.routes.draw do get "/admin" => redirect("/admin/conference") - root :to => "home#index" - + root to: 'home#index', via: [:get, :options] end diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb new file mode 100644 index 00000000..d66df460 --- /dev/null +++ b/spec/controllers/home_controller_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +describe HomeController do + let(:conference) { create(:conference) } + describe 'GET #index' do + it 'Response code is 200' do + get :index + expect(response.response_code).to eq(200) + end + + it 'Assigns conference' do + get :index + expect(assigns(:current)).to eq [conference] + end + + it 'Assigns only pending conferences' do + create(:conference, + end_date: Date.today - 7, + start_date: Date.today - 14) + get :index + expect(assigns(:current)).to eq [conference] + end + + end + + describe 'OPTIONS #index' do + it 'Response code is 200' do + process :index, 'OPTIONS' + expect(response.response_code).to eq(200) + end + end +end