このセクションでは、ユーザーが自分のプロファイルのみを編集および更新できるように制限することになっています。これを除いて、私のすべてのテストはこの時点まで合格します:
describe "as wrong user" do
let(:user) { FactoryGirl.create(:user) }
let(:wrong_user) { FactoryGirl.create(:user, email: "wrong@example.com") }
before { sign_in user }
describe "visiting Users#edit page" do
before { visit edit_user_path(wrong_user) }
it { should_not have_selector('title', text: full_title('Edit user')) }
end
describe "submitting a PUT request to the Users#update action" do
before { put user_path(wrong_user) }
specify { response.should redirect_to(root_path) }
end
end
具体的には、最後の部分であるリダイレクトです。これは、テストを実行したときに得られるものです。
1) Authentication authorization as wrong user submitting a PUT request to the Users#update action
Failure/Error: specify { response.should redirect_to(root_path) }
Expected response to be a redirect to <http://www.example.com/> but was a redirect to <http://www.example.com/signin>
# ./spec/requests/authentication_spec.rb:86:in `block (5 levels) in <top (required)>'
しかし、Web サイトでこれと同じことをしようとすると、問題なく動作し、ユーザーはアプリケーションの root_path にリダイレクトされます。