FIX: Rescue and display import errors when updating theme via git

This commit is contained in:
David Taylor 2019-02-05 13:49:16 +00:00 committed by Neil Lalonde
parent bfceb29db8
commit 9f49007b7b
2 changed files with 14 additions and 0 deletions

View File

@ -209,6 +209,8 @@ class Admin::ThemesController < Admin::AdminController
end
end
end
rescue RemoteTheme::ImportError => e
render_json_error e.message
end
def destroy

View File

@ -311,7 +311,19 @@ describe Admin::ThemesController do
# Database correct
theme.reload
expect(theme.theme_translation_overrides.count).to eq(0)
end
it 'handles import errors on update' do
theme.create_remote_theme!(remote_url: "https://example.com/repository")
# RemoteTheme is extensively tested, and setting up the test scaffold is a large overhead
# So use a stub here to test the controller
RemoteTheme.any_instance.stubs(:update_from_remote).raises(RemoteTheme::ImportError.new("error message"))
put "/admin/themes/#{theme.id}.json", params: {
theme: { remote_update: true }
}
expect(response.status).to eq(422)
expect(JSON.parse(response.body)["errors"].first).to eq("error message")
end
it 'returns the right error message' do