{"action":"created","comment":{"url":"https://api.github.com/repos/heroku/identity/pulls/comments/44613430","id":44613430,"diff_hunk":"@@ -135,24 +135,38 @@ def app\n     it \"changes a password and redirects to login\" do\n       stub_heroku_api\n       post \"/account/password/reset/c45685917ef644198a0fececa10d479a\",\n-        password: \"1234567890ab\", password_confirmation: \"1234567890ab\"\n+        password:              \"1234567890ab\",\n+        password_confirmation: \"1234567890ab\"\n       assert_equal 302, last_response.status\n       assert_match %r{/login$}, last_response.headers[\"Location\"]\n     end\n \n+    it \"renders a not found page when there's a 404 error from API\" do\n+      stub_heroku_api do\n+        post \"/password-resets/:token/actions/finalize\" do\n+          [ 404, MultiJson.encode(message: \"Not Found\") ]\n+        end\n+      end\n+      post \"/account/password/reset/c45685917ef644198a0fececa10d479a\",\n+        password:              \"1234567890ab\",\n+        password_confirmation: \"1234567890ab\"\n+      assert_equal 404, last_response.status\n+    end\n+\n     [ 403, 422 ].each do |error_code|\n       it \"redirects back to reset page when there's a #{error_code} error\" do\n         stub_heroku_api do\n           post \"/password-resets/:token/actions/finalize\" do\n-            [ error_code, MultiJson.encode({ message: \"a #{error_code} error\" }) ]\n+            [ error_code, MultiJson.encode(message: \"a #{error_code} error\") ]","path":"test/account_test.rb","position":37,"original_position":37,"commit_id":"e26c58c0a01768c240cfd5a1d43d927262429b92","original_commit_id":"e26c58c0a01768c240cfd5a1d43d927262429b92","user":{"login":"houndci","id":6697940,"avatar_url":"https://avatars.githubusercontent.com/u/6697940?v=3","gravatar_id":"","url":"https://api.github.com/users/houndci","html_url":"https://github.com/houndci","followers_url":"https://api.github.com/users/houndci/followers","following_url":"https://api.github.com/users/houndci/following{/other_user}","gists_url":"https://api.github.com/users/houndci/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci/subscriptions","organizations_url":"https://api.github.com/users/houndci/orgs","repos_url":"https://api.github.com/users/houndci/repos","events_url":"https://api.github.com/users/houndci/events{/privacy}","received_events_url":"https://api.github.com/users/houndci/received_events","type":"User","site_admin":false},"body":"Space inside square brackets detected.","created_at":"2015-11-12T01:51:35Z","updated_at":"2015-11-12T01:51:35Z","html_url":"https://github.com/heroku/identity/pull/194#discussion_r44613430","pull_request_url":"https://api.github.com/repos/heroku/identity/pulls/194","_links":{"self":{"href":"https://api.github.com/repos/heroku/identity/pulls/comments/44613430"},"html":{"href":"https://github.com/heroku/identity/pull/194#discussion_r44613430"},"pull_request":{"href":"https://api.github.com/repos/heroku/identity/pulls/194"}}},"pull_request":{"url":"https://api.github.com/repos/heroku/identity/pulls/194","id":50458584,"html_url":"https://github.com/heroku/identity/pull/194","diff_url":"https://github.com/heroku/identity/pull/194.diff","patch_url":"https://github.com/heroku/identity/pull/194.patch","issue_url":"https://api.github.com/repos/heroku/identity/issues/194","number":194,"state":"open","locked":false,"title":"Handle generic client errors for password resets","user":{"login":"dmcinnes","id":16557,"avatar_url":"https://avatars.githubusercontent.com/u/16557?v=3","gravatar_id":"","url":"https://api.github.com/users/dmcinnes","html_url":"https://github.com/dmcinnes","followers_url":"https://api.github.com/users/dmcinnes/followers","following_url":"https://api.github.com/users/dmcinnes/following{/other_user}","gists_url":"https://api.github.com/users/dmcinnes/gists{/gist_id}","starred_url":"https://api.github.com/users/dmcinnes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmcinnes/subscriptions","organizations_url":"https://api.github.com/users/dmcinnes/orgs","repos_url":"https://api.github.com/users/dmcinnes/repos","events_url":"https://api.github.com/users/dmcinnes/events{/privacy}","received_events_url":"https://api.github.com/users/dmcinnes/received_events","type":"User","site_admin":false},"body":"Fixes #188\r\n\r\nAlso updates not found pages for password resets and email confirmations to correctly return a 404 status.","created_at":"2015-11-12T00:54:04Z","updated_at":"2015-11-12T01:51:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8907e4e6006b40ecc6175cbf156c1fbcf13d79de","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/heroku/identity/pulls/194/commits","review_comments_url":"https://api.github.com/repos/heroku/identity/pulls/194/comments","review_comment_url":"https://api.github.com/repos/heroku/identity/pulls/comments{/number}","comments_url":"https://api.github.com/repos/heroku/identity/issues/194/comments","statuses_url":"https://api.github.com/repos/heroku/identity/statuses/e26c58c0a01768c240cfd5a1d43d927262429b92","head":{"label":"heroku:doug-handle-generic-client-errors","ref":"doug-handle-generic-client-errors","sha":"e26c58c0a01768c240cfd5a1d43d927262429b92","user":{"login":"heroku","id":23211,"avatar_url":"https://avatars.githubusercontent.com/u/23211?v=3","gravatar_id":"","url":"https://api.github.com/users/heroku","html_url":"https://github.com/heroku","followers_url":"https://api.github.com/users/heroku/followers","following_url":"https://api.github.com/users/heroku/following{/other_user}","gists_url":"https://api.github.com/users/heroku/gists{/gist_id}","starred_url":"https://api.github.com/users/heroku/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heroku/subscriptions","organizations_url":"https://api.github.com/users/heroku/orgs","repos_url":"https://api.github.com/users/heroku/repos","events_url":"https://api.github.com/users/heroku/events{/privacy}","received_events_url":"https://api.github.com/users/heroku/received_events","type":"Organization","site_admin":false},"repo":{"id":7472185,"name":"identity","full_name":"heroku/identity","owner":{"login":"heroku","id":23211,"avatar_url":"https://avatars.githubusercontent.com/u/23211?v=3","gravatar_id":"","url":"https://api.github.com/users/heroku","html_url":"https://github.com/heroku","followers_url":"https://api.github.com/users/heroku/followers","following_url":"https://api.github.com/users/heroku/following{/other_user}","gists_url":"https://api.github.com/users/heroku/gists{/gist_id}","starred_url":"https://api.github.com/users/heroku/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heroku/subscriptions","organizations_url":"https://api.github.com/users/heroku/orgs","repos_url":"https://api.github.com/users/heroku/repos","events_url":"https://api.github.com/users/heroku/events{/privacy}","received_events_url":"https://api.github.com/users/heroku/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/heroku/identity","description":"Login and OAuth management service for Heroku","fork":false,"url":"https://api.github.com/repos/heroku/identity","forks_url":"https://api.github.com/repos/heroku/identity/forks","keys_url":"https://api.github.com/repos/heroku/identity/keys{/key_id}","collaborators_url":"https://api.github.com/repos/heroku/identity/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/heroku/identity/teams","hooks_url":"https://api.github.com/repos/heroku/identity/hooks","issue_events_url":"https://api.github.com/repos/heroku/identity/issues/events{/number}","events_url":"https://api.github.com/repos/heroku/identity/events","assignees_url":"https://api.github.com/repos/heroku/identity/assignees{/user}","branches_url":"https://api.github.com/repos/heroku/identity/branches{/branch}","tags_url":"https://api.github.com/repos/heroku/identity/tags","blobs_url":"https://api.github.com/repos/heroku/identity/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/heroku/identity/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/heroku/identity/git/refs{/sha}","trees_url":"https://api.github.com/repos/heroku/identity/git/trees{/sha}","statuses_url":"https://api.github.com/repos/heroku/identity/statuses/{sha}","languages_url":"https://api.github.com/repos/heroku/identity/languages","stargazers_url":"https://api.github.com/repos/heroku/identity/stargazers","contributors_url":"https://api.github.com/repos/heroku/identity/contributors","subscribers_url":"https://api.github.com/repos/heroku/identity/subscribers","subscription_url":"https://api.github.com/repos/heroku/identity/subscription","commits_url":"https://api.github.com/repos/heroku/identity/commits{/sha}","git_commits_url":"https://api.github.com/repos/heroku/identity/git/commits{/sha}","comments_url":"https://api.github.com/repos/heroku/identity/comments{/number}","issue_comment_url":"https://api.github.com/repos/heroku/identity/issues/comments{/number}","contents_url":"https://api.github.com/repos/heroku/identity/contents/{+path}","compare_url":"https://api.github.com/repos/heroku/identity/compare/{base}...{head}","merges_url":"https://api.github.com/repos/heroku/identity/merges","archive_url":"https://api.github.com/repos/heroku/identity/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/heroku/identity/downloads","issues_url":"https://api.github.com/repos/heroku/identity/issues{/number}","pulls_url":"https://api.github.com/repos/heroku/identity/pulls{/number}","milestones_url":"https://api.github.com/repos/heroku/identity/milestones{/number}","notifications_url":"https://api.github.com/repos/heroku/identity/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/heroku/identity/labels{/name}","releases_url":"https://api.github.com/repos/heroku/identity/releases{/id}","created_at":"2013-01-06T20:17:00Z","updated_at":"2015-11-05T03:06:27Z","pushed_at":"2015-11-12T01:51:32Z","git_url":"git://github.com/heroku/identity.git","ssh_url":"git@github.com:heroku/identity.git","clone_url":"https://github.com/heroku/identity.git","svn_url":"https://github.com/heroku/identity","homepage":"https://id.heroku.com/","size":4542,"stargazers_count":237,"watchers_count":237,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":17,"forks":13,"open_issues":17,"watchers":237,"default_branch":"master"}},"base":{"label":"heroku:master","ref":"master","sha":"fb89267759a9b368a5fa1c276c03550fe77cc46e","user":{"login":"heroku","id":23211,"avatar_url":"https://avatars.githubusercontent.com/u/23211?v=3","gravatar_id":"","url":"https://api.github.com/users/heroku","html_url":"https://github.com/heroku","followers_url":"https://api.github.com/users/heroku/followers","following_url":"https://api.github.com/users/heroku/following{/other_user}","gists_url":"https://api.github.com/users/heroku/gists{/gist_id}","starred_url":"https://api.github.com/users/heroku/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heroku/subscriptions","organizations_url":"https://api.github.com/users/heroku/orgs","repos_url":"https://api.github.com/users/heroku/repos","events_url":"https://api.github.com/users/heroku/events{/privacy}","received_events_url":"https://api.github.com/users/heroku/received_events","type":"Organization","site_admin":false},"repo":{"id":7472185,"name":"identity","full_name":"heroku/identity","owner":{"login":"heroku","id":23211,"avatar_url":"https://avatars.githubusercontent.com/u/23211?v=3","gravatar_id":"","url":"https://api.github.com/users/heroku","html_url":"https://github.com/heroku","followers_url":"https://api.github.com/users/heroku/followers","following_url":"https://api.github.com/users/heroku/following{/other_user}","gists_url":"https://api.github.com/users/heroku/gists{/gist_id}","starred_url":"https://api.github.com/users/heroku/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heroku/subscriptions","organizations_url":"https://api.github.com/users/heroku/orgs","repos_url":"https://api.github.com/users/heroku/repos","events_url":"https://api.github.com/users/heroku/events{/privacy}","received_events_url":"https://api.github.com/users/heroku/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/heroku/identity","description":"Login and OAuth management service for Heroku","fork":false,"url":"https://api.github.com/repos/heroku/identity","forks_url":"https://api.github.com/repos/heroku/identity/forks","keys_url":"https://api.github.com/repos/heroku/identity/keys{/key_id}","collaborators_url":"https://api.github.com/repos/heroku/identity/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/heroku/identity/teams","hooks_url":"https://api.github.com/repos/heroku/identity/hooks","issue_events_url":"https://api.github.com/repos/heroku/identity/issues/events{/number}","events_url":"https://api.github.com/repos/heroku/identity/events","assignees_url":"https://api.github.com/repos/heroku/identity/assignees{/user}","branches_url":"https://api.github.com/repos/heroku/identity/branches{/branch}","tags_url":"https://api.github.com/repos/heroku/identity/tags","blobs_url":"https://api.github.com/repos/heroku/identity/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/heroku/identity/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/heroku/identity/git/refs{/sha}","trees_url":"https://api.github.com/repos/heroku/identity/git/trees{/sha}","statuses_url":"https://api.github.com/repos/heroku/identity/statuses/{sha}","languages_url":"https://api.github.com/repos/heroku/identity/languages","stargazers_url":"https://api.github.com/repos/heroku/identity/stargazers","contributors_url":"https://api.github.com/repos/heroku/identity/contributors","subscribers_url":"https://api.github.com/repos/heroku/identity/subscribers","subscription_url":"https://api.github.com/repos/heroku/identity/subscription","commits_url":"https://api.github.com/repos/heroku/identity/commits{/sha}","git_commits_url":"https://api.github.com/repos/heroku/identity/git/commits{/sha}","comments_url":"https://api.github.com/repos/heroku/identity/comments{/number}","issue_comment_url":"https://api.github.com/repos/heroku/identity/issues/comments{/number}","contents_url":"https://api.github.com/repos/heroku/identity/contents/{+path}","compare_url":"https://api.github.com/repos/heroku/identity/compare/{base}...{head}","merges_url":"https://api.github.com/repos/heroku/identity/merges","archive_url":"https://api.github.com/repos/heroku/identity/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/heroku/identity/downloads","issues_url":"https://api.github.com/repos/heroku/identity/issues{/number}","pulls_url":"https://api.github.com/repos/heroku/identity/pulls{/number}","milestones_url":"https://api.github.com/repos/heroku/identity/milestones{/number}","notifications_url":"https://api.github.com/repos/heroku/identity/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/heroku/identity/labels{/name}","releases_url":"https://api.github.com/repos/heroku/identity/releases{/id}","created_at":"2013-01-06T20:17:00Z","updated_at":"2015-11-05T03:06:27Z","pushed_at":"2015-11-12T01:51:32Z","git_url":"git://github.com/heroku/identity.git","ssh_url":"git@github.com:heroku/identity.git","clone_url":"https://github.com/heroku/identity.git","svn_url":"https://github.com/heroku/identity","homepage":"https://id.heroku.com/","size":4542,"stargazers_count":237,"watchers_count":237,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":17,"forks":13,"open_issues":17,"watchers":237,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/heroku/identity/pulls/194"},"html":{"href":"https://github.com/heroku/identity/pull/194"},"issue":{"href":"https://api.github.com/repos/heroku/identity/issues/194"},"comments":{"href":"https://api.github.com/repos/heroku/identity/issues/194/comments"},"review_comments":{"href":"https://api.github.com/repos/heroku/identity/pulls/194/comments"},"review_comment":{"href":"https://api.github.com/repos/heroku/identity/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/heroku/identity/pulls/194/commits"},"statuses":{"href":"https://api.github.com/repos/heroku/identity/statuses/e26c58c0a01768c240cfd5a1d43d927262429b92"}}}}