From 7f1a02e62d38b7944eb30d6351f88d0e97f5366d Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 28 Nov 2014 15:49:22 +0000 Subject: Add index method for listing existing holidays --- spec/controllers/admin_holidays_controller_spec.rb | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 spec/controllers/admin_holidays_controller_spec.rb (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb new file mode 100644 index 000000000..b3b813790 --- /dev/null +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +describe AdminHolidaysController do + + describe :index do + + before do + @holiday_one = FactoryGirl.create(:holiday, :day => Date.new(2010, 1, 1)) + @holiday_two = FactoryGirl.create(:holiday, :day => Date.new(2011, 2, 2)) + @holiday_three = FactoryGirl.create(:holiday, :day => Date.new(2011, 3, 3)) + end + + it 'gets a hash of holidays keyed by year' do + get :index + assigns(:holidays_by_year)[2010].should include(@holiday_one) + assigns(:holidays_by_year)[2011].should include(@holiday_two) + assigns(:holidays_by_year)[2011].should include(@holiday_three) + end + + it 'gets a list of years with holidays' do + get :index + assigns(:years).should include(2010) + assigns(:years).should include(2011) + end + + it 'renders the index template' do + get :index + expect(response).to render_template('index') + end + + end +end -- cgit v1.2.3 From 318946c869a7cbe6360118308eea8e97fb136f1b Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 28 Nov 2014 16:00:13 +0000 Subject: Add basic edit action --- spec/controllers/admin_holidays_controller_spec.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index b3b813790..61833b425 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -29,4 +29,24 @@ describe AdminHolidaysController do end end -end + + describe :edit do + + before do + @holiday = FactoryGirl.create(:holiday) + end + + it 'renders the edit template' do + get :edit, :id => @holiday.id + expect(response).to render_template('edit') + end + + it 'gets the holiday in the id param' do + get :edit, :id => @holiday.id + assigns[:holiday].should == @holiday + end + + + end + + end -- cgit v1.2.3 From be43f90852304793642ea752c358aebaf6f7bef1 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 28 Nov 2014 16:49:48 +0000 Subject: Add basic update action. --- spec/controllers/admin_holidays_controller_spec.rb | 40 ++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index 61833b425..7025daa81 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -34,18 +34,54 @@ describe AdminHolidaysController do before do @holiday = FactoryGirl.create(:holiday) + get :edit, :id => @holiday.id end it 'renders the edit template' do - get :edit, :id => @holiday.id expect(response).to render_template('edit') end it 'gets the holiday in the id param' do - get :edit, :id => @holiday.id assigns[:holiday].should == @holiday end + end + + describe :update do + + before do + @holiday = FactoryGirl.create(:holiday, :day => Date.new(2010, 1, 1), + :description => "Test Holiday") + put :update, :id => @holiday.id, :holiday => { :description => 'New Test Holiday' } + end + + it 'gets the holiday in the id param' do + assigns[:holiday].should == @holiday + end + + it 'updates the holiday' do + holiday = Holiday.find(@holiday.id).description.should == 'New Test Holiday' + end + + it 'shows the admin a success message' do + flash[:notice].should == 'Holiday successfully updated.' + end + + it 'redirects to the index' do + response.should redirect_to admin_holidays_path + end + + context 'when there are errors' do + + before do + Holiday.any_instance.stub(:update_attributes).and_return(false) + put :update, :id => @holiday.id, :holiday => { :description => 'New Test Holiday' } + end + + it 'renders the edit template' do + expect(response).to render_template('edit') + end + end end -- cgit v1.2.3 From 46b48f4283332e2f6229641cbf2e0f6b3e57404c Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 28 Nov 2014 16:38:23 +0000 Subject: Add basic destroy action. --- spec/controllers/admin_holidays_controller_spec.rb | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index 7025daa81..087a77b32 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -85,4 +85,29 @@ describe AdminHolidaysController do end + describe :destroy do + + before(:each) do + @holiday = FactoryGirl.create(:holiday) + delete :destroy, :id => @holiday.id + end + + it 'finds the holiday to destroy' do + assigns(:holiday).should == @holiday + end + + it 'destroys the holiday' do + assigns(:holiday).should be_destroyed + end + + it 'tells the admin the holiday has been destroyed' do + msg = "Holiday successfully destroyed" + flash[:notice].should == msg + end + + it 'redirects to the index action' do + expect(response).to redirect_to(admin_holidays_path) + end + end + end -- cgit v1.2.3 From 9a61e990a6592b79eb09dbe7cac931325dc64d60 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 11 Dec 2014 11:07:39 +0000 Subject: Add new action --- spec/controllers/admin_holidays_controller_spec.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index 087a77b32..dd431584e 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -30,6 +30,21 @@ describe AdminHolidaysController do end + describe :new do + + before do + get :new + end + + it 'renders the new template' do + expect(response).to render_template('new') + end + + it 'creates a new holiday' do + assigns[:holiday].should be_an_instance_of(Holiday) + end + + end describe :edit do before do -- cgit v1.2.3 From e977f2a1bf0fbe898ee13a6874b56a7f6178e622 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 11 Dec 2014 11:08:08 +0000 Subject: Add create action --- spec/controllers/admin_holidays_controller_spec.rb | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index dd431584e..56d6041ca 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -45,6 +45,45 @@ describe AdminHolidaysController do end end + + describe :create do + + before do + @holiday_params = { :description => "New Year's Day", + 'day(1i)' => '2010', + 'day(2i)' => '1', + 'day(3i)' => '1' } + post :create, :holiday => @holiday_params + end + + it 'creates a new holiday' do + assigns(:holiday).description.should == @holiday_params[:description] + assigns(:holiday).day.should == Date.new(2010, 1, 1) + assigns(:holiday).should be_persisted + end + + it 'shows the admin a success message' do + flash[:notice].should == 'Holiday successfully created.' + end + + it 'redirects to the index' do + response.should redirect_to admin_holidays_path + end + + context 'when there are errors' do + + before do + Holiday.any_instance.stub(:save).and_return(false) + post :create, :holiday => @holiday_params + end + + it 'renders the new template' do + expect(response).to render_template('new') + end + end + + end + describe :edit do before do -- cgit v1.2.3 From c0873303ec0779f59ad1f920d531f89444f15878 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 28 Nov 2014 17:27:28 +0000 Subject: Add some inline editing --- spec/controllers/admin_holidays_controller_spec.rb | 38 ++++++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index 56d6041ca..1f76a7fcb 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -32,12 +32,22 @@ describe AdminHolidaysController do describe :new do - before do - get :new + + describe 'when not using ajax' do + + it 'renders the new template' do + get :new + expect(response).to render_template('new') + end + end - it 'renders the new template' do - expect(response).to render_template('new') + describe 'when using ajax' do + + it 'renders the new form partial' do + xhr :get, :new + expect(response).to render_template('new_form') + end end it 'creates a new holiday' do @@ -88,14 +98,28 @@ describe AdminHolidaysController do before do @holiday = FactoryGirl.create(:holiday) - get :edit, :id => @holiday.id end - it 'renders the edit template' do - expect(response).to render_template('edit') + describe 'when not using ajax' do + + it 'renders the edit template' do + get :edit, :id => @holiday.id + expect(response).to render_template('edit') + end + + end + + describe 'when using ajax' do + + it 'renders the edit form partial' do + xhr :get, :edit, :id => @holiday.id + expect(response).to render_template('edit_form') + end + end it 'gets the holiday in the id param' do + get :edit, :id => @holiday.id assigns[:holiday].should == @holiday end -- cgit v1.2.3 From 8e69a9372fb29bc8107ee8c542f9408efa54b76e Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Mon, 15 Dec 2014 17:16:11 +0000 Subject: Allow import of holidays from feed or built-in suggestions --- spec/controllers/admin_holidays_controller_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'spec/controllers/admin_holidays_controller_spec.rb') diff --git a/spec/controllers/admin_holidays_controller_spec.rb b/spec/controllers/admin_holidays_controller_spec.rb index 1f76a7fcb..21cb51d29 100644 --- a/spec/controllers/admin_holidays_controller_spec.rb +++ b/spec/controllers/admin_holidays_controller_spec.rb @@ -51,7 +51,8 @@ describe AdminHolidaysController do end it 'creates a new holiday' do - assigns[:holiday].should be_an_instance_of(Holiday) + get :new + assigns[:holiday].should be_instance_of(Holiday) end end -- cgit v1.2.3