diff --git a/db/seed.rb b/db/seed.rb index 61dcfdbc..e29af04b 100644 --- a/db/seed.rb +++ b/db/seed.rb @@ -48,6 +48,22 @@ def import_taxonomy!(values_data:, attributes_data:, verticals_data:) vputs(" ✓ Imported #{Category.verticals.count} verticals with #{Category.count} categories") vputs(" → Validating taxonomy...") + if values_data.size != Value.count + vputs(" ✗ Import failed. Values count mismatch") + exit(1) + elsif attributes_data["base_attributes"].size != Attribute.base.count + vputs(" ✗ Import failed. Base attributes count mismatch") + exit(1) + elsif attributes_data["extended_attributes"].size != Attribute.extended.count + vputs(" ✗ Import failed. Extended attributes count mismatch") + exit(1) + elsif verticals_data.size != Category.verticals.count + vputs(" ✗ Import failed. Verticals count mismatch") + exit(1) + elsif verticals_data.sum(&:size) != Category.count + vputs(" ✗ Import failed. Categories count mismatch") + exit(1) + end [Value, Attribute, AttributesValue, Category, CategoriesAttribute].each do |model| if model.count.zero? vputs(" ✗ Import failed. No #{model.name.pluralize} found") diff --git a/test/integration/all_data_files_import_test.rb b/test/integration/all_data_files_import_test.rb index ba2a9a72..078e0296 100644 --- a/test/integration/all_data_files_import_test.rb +++ b/test/integration/all_data_files_import_test.rb @@ -51,10 +51,6 @@ def after_all end end - test "AttributeValues are correctly imported from values.yml" do - assert_equal @raw_values_data.size, Value.count - end - test "AttributeValues are consistent with values.yml" do @raw_values_data.each do |raw_value| deserialized_value = Value.new_from_data(raw_value) @@ -64,10 +60,6 @@ def after_all end end - test "Attributes are correctly imported from attributes.yml" do - assert_equal @raw_attributes_data.values.flat_map { _1 }.size, Attribute.count - end - test "Attributes are consistent with attributes.yml" do base_attributes = @raw_attributes_data["base_attributes"] extended_attributes = @raw_attributes_data["extended_attributes"] @@ -104,17 +96,6 @@ def after_all end end - test "Attributes are all valid" do - Attribute.all.each do |attribute| - assert_predicate attribute, :valid? - end - end - - test "Categories are fully imported from categories/*.yml" do - assert_equal @raw_verticals_data.size, Category.verticals.count - assert_equal @raw_verticals_data.map(&:size).sum, Category.count - end - test "Categories are consistent with categories/*.yml" do @raw_verticals_data.flatten.each do |raw_category| deserialized_category = Category.new_from_data(raw_category) @@ -126,12 +107,6 @@ def after_all end end - test "Categories are all valid" do - Category.all.each do |category| - assert_predicate category, :valid? - end - end - test "Category ↔ Attribute relationships are consistent with categories/*.yml" do @raw_verticals_data.flatten.each do |raw_category| properties_via_raw_category_id = Category.find(raw_category.fetch("id")).related_attributes @@ -196,12 +171,6 @@ def after_all assert_includes real_value_friendly_ids, "snowboard_construction__rocker" end - test "MappingRules are fully imported from integrations/*/*/mappings/*_shopify.yml" do - assert_equal @raw_mapping_rules_data.size, - MappingRule.select(:integration_id, :from_shopify).distinct.to_a.count - assert_equal @raw_mapping_rules_data.map { |raw| raw[:content]["rules"].count }.sum, MappingRule.count - end - test "MappingRule ↔ Product relationships are consistent with integrations/*/*/mappings/*_shopify.yml" do @raw_mapping_rules_data.each do |raw| from_shopify = File.basename(raw[:file_name], ".*").split("_")[0] == "from"