sign_in @user
end
context 'つつがなく終わるとき' do
- it 'モデルに取得依頼する' do
- Story.stub(:show).with(any_args).and_return(@story)
- Story.should_receive(:show).exactly(1)
+ it 'モデルに編集取得依頼する' do
+ Story.stub(:edit).with(any_args).and_return(@story)
+ Story.should_receive(:edit).exactly(1)
put :update, :id => @story.id, :story => @attr
end
it 'POSTデータから、カラム値を復元している' do
end
end
+ describe '削除に於いて' do\r
+ before do\r
+ @story = Factory :story, :author_id => @author.id
+ sign_in @user
+ Story.stub(:edit).and_return(@story)\r
+ end\r
+ context 'つつがなく終わるとき' do\r
+ it 'ストーリーモデルに編集取得を問い合わせている' do\r
+ Story.should_receive(:edit).exactly(1)\r
+ delete :destroy, :id => @story.id\r
+ end\r
+ it '@storyにアレを取得している' do\r
+ delete :destroy, :id => @story.id\r
+ assigns(:story).id.should eq(@story.id)\r
+ end\r
+ it 'そのストーリーを一つのトランザクションで削除する' do\r
+ lambda {\r
+ delete :destroy, :id => @story.id\r
+ }.should change(Story, :count)\r
+ end\r
+ context 'html形式' do\r
+ it 'ステータスコード302 Foundを返す' do\r
+ delete :destroy, :id => @story.id\r
+ response.status.should eq 302\r
+ end\r
+ it 'ストーリー一覧ページへ遷移する' do\r
+ delete :destroy, :id => @story.id\r
+ response.should redirect_to(story_path(@story.comic_id))\r
+ end\r
+ end\r
+ context 'json形式' do\r
+ it 'ステータスコード200 OKを返す' do\r
+ delete :destroy, :id => @story.id, :format => :json\r
+ response.should be_success\r
+ end\r
+ end\r
+ end\r
+ context '作家権限がないとき' do\r
+ before do\r
+ sign_out @user\r
+ end\r
+ context 'html形式' do\r
+ it 'ステータスコード302 Foundを返す' do\r
+ delete :destroy, :id => @story.id\r
+ response.status.should eq 302\r
+ end\r
+ it 'サインインページへ遷移する' do\r
+ delete :destroy, :id => @story.id\r
+ response.body.should redirect_to '/users/sign_in'\r
+ end\r
+ end\r
+ context 'json形式' do\r
+ it 'ステータスコード401 Unauthorizedを返す' do\r
+ delete :destroy, :id => @story.id, :format => :json\r
+ response.status.should eq 401\r
+ end\r
+ it '応答メッセージにUnauthorizedを返す' do\r
+ delete :destroy, :id => @story.id, :format => :json\r
+ response.message.should match(/Unauthorized/)\r
+ end\r
+ end\r
+ end\r
+=begin\r
+ context '対象ストーリーがないとき' do\r
+ end\r
+ context '他人のストーリーだったとき' do\r
+ end\r
+=end\r
+ end\r
+ \r
end