mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Fail gracefully on DFC product import errors
This commit is contained in:
@@ -38,6 +38,11 @@ module Admin
|
||||
end
|
||||
|
||||
@count = imported.compact.count
|
||||
rescue Faraday::Error,
|
||||
Addressable::URI::InvalidURIError,
|
||||
ActionController::ParameterMissing => e
|
||||
flash[:error] = e.message
|
||||
redirect_to admin_product_import_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -76,4 +76,31 @@ RSpec.describe "DFC Product Import" do
|
||||
expect(product.variants[0].semantic_links).to be_present
|
||||
expect(product.image).to be_present
|
||||
end
|
||||
|
||||
it "fails gracefully" do
|
||||
user.oidc_account.update!(
|
||||
uid: "anonymous@example.net",
|
||||
updated_at: 1.minute.ago,
|
||||
)
|
||||
url = "https://example.net/unauthorized"
|
||||
stub_request(:get, url).to_return(status: [401, "Unauthorized"])
|
||||
|
||||
visit admin_product_import_path
|
||||
select enterprise.name, from: "Enterprise"
|
||||
fill_in "catalog_url", with: url
|
||||
|
||||
expect { click_button "Import" }.not_to change { Spree::Variant.count }
|
||||
|
||||
expect(page).to have_content "the server responded with status 401"
|
||||
|
||||
select enterprise.name, from: "Enterprise"
|
||||
fill_in "catalog_url", with: "badurl"
|
||||
click_button "Import"
|
||||
expect(page).to have_content "Absolute URI missing hierarchical segment: 'http://:80'"
|
||||
|
||||
select enterprise.name, from: "Enterprise"
|
||||
fill_in "catalog_url", with: ""
|
||||
click_button "Import"
|
||||
expect(page).to have_content "param is missing or the value is empty: catalog_url"
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user