From e54125b5dc0db7a51839d096fe38927ddec8abcd Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 10 Jun 2015 13:12:15 -0400 Subject: [PATCH] FIX: Endless spinner when anonymous users navigated to 404s --- .../javascripts/discourse/models/post-stream.js.es6 | 2 +- app/assets/javascripts/discourse/templates/topic.hbs | 2 +- test/javascripts/acceptance/topic-anonymous-test.js.es6 | 8 ++++++++ test/javascripts/helpers/create-pretender.js.es6 | 4 ++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/models/post-stream.js.es6 b/app/assets/javascripts/discourse/models/post-stream.js.es6 index c6be242fa26..61a70f5d2c8 100644 --- a/app/assets/javascripts/discourse/models/post-stream.js.es6 +++ b/app/assets/javascripts/discourse/models/post-stream.js.es6 @@ -713,7 +713,7 @@ const PostStream = RestModel.extend({ // If the result was 404 the post is not found if (status === 404) { topic.set('errorTitle', I18n.t('topic.not_found.title')); - topic.set('notFoundHtml', result.responseText); + topic.set('notFoundHtml', result.jqXHR.responseText); return; } diff --git a/app/assets/javascripts/discourse/templates/topic.hbs b/app/assets/javascripts/discourse/templates/topic.hbs index ea25c5c0eaa..a5bb12e87a9 100644 --- a/app/assets/javascripts/discourse/templates/topic.hbs +++ b/app/assets/javascripts/discourse/templates/topic.hbs @@ -125,7 +125,7 @@
{{#conditional-loading-spinner condition=noErrorYet}} {{#if model.notFoundHtml}} - {{{model.notFoundHtml}}} +
{{{model.notFoundHtml}}}
{{else}}
{{model.message}}
diff --git a/test/javascripts/acceptance/topic-anonymous-test.js.es6 b/test/javascripts/acceptance/topic-anonymous-test.js.es6 index 2703ad0faa5..8e5ddf45c2f 100644 --- a/test/javascripts/acceptance/topic-anonymous-test.js.es6 +++ b/test/javascripts/acceptance/topic-anonymous-test.js.es6 @@ -16,6 +16,14 @@ test("Enter without an id", () => { }); }); +test("Enter a 404 topic", (assert) => { + visit("/t/not-found/404"); + andThen(() => { + assert.ok(!exists("#topic"), "The topic was not rendered"); + assert.ok(find(".not-found").text() === "not found", "it renders the error message"); + }); +}); + test("Enter without access", (assert) => { visit("/t/i-dont-have-access/403"); andThen(() => { diff --git a/test/javascripts/helpers/create-pretender.js.es6 b/test/javascripts/helpers/create-pretender.js.es6 index 247f09b299f..cad384f5e2a 100644 --- a/test/javascripts/helpers/create-pretender.js.es6 +++ b/test/javascripts/helpers/create-pretender.js.es6 @@ -179,6 +179,10 @@ export default function() { return response(403, {}); }); + this.get('/t/404.json', () => { + return response(404, "not found"); + }); + this.get('/t/500.json', () => { return response(502, {}); });