Ignore empty categories while importing (#789)

* Ignore empty categories while importing

* Review fixes
This commit is contained in:
Jakub Kottnauer
2024-05-22 14:12:56 +02:00
committed by GitHub
parent ac27a1c87f
commit 77f166a5f8
5 changed files with 23 additions and 8 deletions

View File

@@ -37,7 +37,7 @@ class Import::CsvTest < ActiveSupport::TestCase
end
test "csv with additional columns and empty values" do
csv = Import::Csv.new valid_csv_with_extra_column
csv = Import::Csv.new valid_csv_with_missing_data
assert csv.valid?
end

View File

@@ -39,7 +39,7 @@ class ImportTest < ActiveSupport::TestCase
end
test "publishes a valid import" do
assert_difference "Transaction.count", 2 do
assert_difference -> { Transaction::Category.count } => 2, -> { Transaction.count } => 2 do
@loaded_import.publish
end
@@ -48,6 +48,19 @@ class ImportTest < ActiveSupport::TestCase
assert @loaded_import.complete?
end
test "publishes a valid import with missing data" do
@empty_import.update! raw_csv_str: valid_csv_with_missing_data
assert_difference -> { Transaction::Category.count } => 1, -> { Transaction.count } => 2 do
@empty_import.publish
end
assert_not_nil Transaction.find_sole_by(name: Import::FALLBACK_TRANSACTION_NAME)
@empty_import.reload
assert @empty_import.complete?
end
test "failed publish results in error status" do
@empty_import.update! raw_csv_str: valid_csv_with_invalid_values

View File

@@ -14,11 +14,11 @@ module ImportTestHelper
ROWS
end
def valid_csv_with_extra_column
def valid_csv_with_missing_data
<<-ROWS
date,name,category,"optional id",amount
2024-01-01,Starbucks drink,Food,1234,20
2024-01-02,Amazon stuff,Shopping,,200
2024-01-01,Drink,Food,1234,200
2024-01-02,,,,100
ROWS
end