diff --git a/app/models/product_import/entry_validator.rb b/app/models/product_import/entry_validator.rb index a759898e32..e08360113e 100644 --- a/app/models/product_import/entry_validator.rb +++ b/app/models/product_import/entry_validator.rb @@ -299,7 +299,7 @@ module ProductImport entry.public_send("#{type}_category_id=", index[category]) else mark_as_invalid(entry, attribute: "#{type}_category", - error: I18n.t('admin.product_import.model.not_found')) + error: I18n.t('admin.product_import.model.category_not_found')) end end diff --git a/app/models/product_import/spreadsheet_entry.rb b/app/models/product_import/spreadsheet_entry.rb index 14759b6ea7..b64314ecc5 100644 --- a/app/models/product_import/spreadsheet_entry.rb +++ b/app/models/product_import/spreadsheet_entry.rb @@ -68,7 +68,7 @@ module ProductImport def invalid_attributes invalid_attrs = {} - errors = @product_validations ? self.errors.messages.merge(@product_validations.messages) : self.errors.messages + errors = @product_validations ? @product_validations.messages.merge(self.errors.messages) : self.errors.messages errors.each do |attr, message| invalid_attrs[attr.to_s] = "#{attr.to_s.capitalize} #{message.first}" end diff --git a/config/locales/en.yml b/config/locales/en.yml index fb1dea3834..9c38d6b867 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -706,6 +706,7 @@ en: conditional_blank: can't be blank if unit_type is blank no_product: did not match any products in the database not_found: not found in database + category_not_found: doesn't match allowed categories. See the correct categories to choose from on the product import page, or check that there's no misspelling. not_updatable: cannot be updated on existing products via product import blank: can't be blank products_no_permission: you do not have permission to manage products for this enterprise diff --git a/spec/models/product_importer_spec.rb b/spec/models/product_importer_spec.rb index 3c6915297e..3b415bf84a 100644 --- a/spec/models/product_importer_spec.rb +++ b/spec/models/product_importer_spec.rb @@ -272,6 +272,26 @@ describe ProductImport::ProductImporter do end end + describe "when shipping category is not found" do + let(:csv_data) { + CSV.generate do |csv| + csv << ["name", "producer", "category", "on_hand", "price", "units", "unit_type", + "variant_unit_name", "on_demand", "shipping_category"] + csv << ["Shipping Test", enterprise.name, "Vegetables", "5", "3.20", "500", "g", "", nil, + "not_found"] + end + } + let(:importer) { import_data csv_data } + + it "raises an error" do + importer.validate_entries + entries = JSON.parse(importer.entries_json) + error = entries['2']['errors']['shipping_category'] + + expect(error).to include "Shipping_category doesn't match allowed categories" + end + end + describe "when enterprises are not valid" do let(:csv_data) { CSV.generate do |csv|