aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2014-12-11 11:08:08 +0000
committerLouise Crow <louise.crow@gmail.com>2014-12-15 18:04:22 +0000
commite977f2a1bf0fbe898ee13a6874b56a7f6178e622 (patch)
tree680918056996ed9c1f97ffa5f9d4202fd8774509
parent9a61e990a6592b79eb09dbe7cac931325dc64d60 (diff)
Add create action
-rw-r--r--app/controllers/admin_holidays_controller.rb9
-rw-r--r--spec/controllers/admin_holidays_controller_spec.rb39
2 files changed, 48 insertions, 0 deletions
diff --git a/app/controllers/admin_holidays_controller.rb b/app/controllers/admin_holidays_controller.rb
index d62b8f741..b65302620 100644
--- a/app/controllers/admin_holidays_controller.rb
+++ b/app/controllers/admin_holidays_controller.rb
@@ -8,6 +8,15 @@ class AdminHolidaysController < AdminController
@holiday = Holiday.new
end
+ def create
+ @holiday = Holiday.new(holiday_params)
+ if @holiday.save
+ notice = "Holiday successfully created."
+ redirect_to admin_holidays_path, :notice => notice
+ else
+ render :new
+ end
+ end
def edit
@holiday = Holiday.find(params[:id])
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