OSDN Git Service

t30350#:fix destroy
[pettanr/pettanr.git] / spec / controllers / panels_controller_spec.rb
index f9bfacd..a75ad3f 100644 (file)
@@ -646,7 +646,7 @@ describe PanelsController do
         delete :destroy, :id => @panel.id\r
         assigns(:panel).id.should eq(@panel.id)\r
       end\r
-      it 'そのコマを一つのトランザクションで削除する' do\r
+      it 'そのコマを削除する' do\r
         lambda {\r
           delete :destroy, :id => @panel.id\r
         }.should change(Panel, :count)\r
@@ -656,9 +656,9 @@ describe PanelsController do
           delete :destroy, :id => @panel.id\r
           response.status.should eq 302\r
         end\r
-        it 'コマ一覧ページへ遷移する' do\r
+        it 'ã\83\9eã\82¤ã\82³ã\83\9eä¸\80覧ã\83\9aã\83¼ã\82¸ã\81¸é\81·ç§»ã\81\99ã\82\8b' do\r
           delete :destroy, :id => @panel.id\r
-          response.should redirect_to(panels_url)\r
+          response.should redirect_to('/home/panel')\r
         end\r
       end\r
       context 'json形式' do\r
@@ -693,6 +693,31 @@ describe PanelsController do
         end\r
       end\r
     end\r
+    context '削除に失敗したとき' do\r
+      before do\r
+        Panel.any_instance.stub(:destroy_with_elements).and_return(false)\r
+      end\r
+      context 'html形式' do\r
+        it 'ステータスコード302 Foundを返す' do\r
+          delete :destroy, :id => @panel.id\r
+          response.status.should eq 302\r
+        end\r
+        it 'そのコマの詳細ページへ遷移する' do\r
+          delete :destroy, :id => @panel.id\r
+          response.should redirect_to(panel_path(@panel))\r
+        end\r
+      end\r
+      context 'json形式' do\r
+        it 'ステータスコード422 unprocessable_entity を返す' do\r
+          delete :destroy, :id => @panel.id, :format => :json\r
+          response.status.should eq 422\r
+        end\r
+        it '応答メッセージUnprocessable Entityを返す' do\r
+          delete :destroy, :id => @panel.id, :format => :json\r
+          response.message.should match(/Unprocessable/)\r
+        end\r
+      end\r
+    end\r
 =begin\r
     context '対象コマがないとき' do\r
     end\r