diff options
author | Louise Crow <louise.crow@gmail.com> | 2014-12-11 11:08:08 +0000 |
---|---|---|
committer | Louise Crow <louise.crow@gmail.com> | 2014-12-15 18:04:22 +0000 |
commit | e977f2a1bf0fbe898ee13a6874b56a7f6178e622 (patch) | |
tree | 680918056996ed9c1f97ffa5f9d4202fd8774509 | |
parent | 9a61e990a6592b79eb09dbe7cac931325dc64d60 (diff) |
Add create action
-rw-r--r-- | app/controllers/admin_holidays_controller.rb | 9 | ||||
-rw-r--r-- | spec/controllers/admin_holidays_controller_spec.rb | 39 |
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 |