1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-24 23:59:40 +02:00

Refactor: Allow other import files (#1099)

* Rename stimulus controller

* feature: rename raw_csv_str to raw_file_str
This commit is contained in:
Pedro Carmona 2024-08-19 14:25:07 +01:00 committed by GitHub
parent e6528bafec
commit 0c1ff00c1e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 71 additions and 57 deletions

View file

@ -72,7 +72,7 @@ class Import::CsvTest < ActiveSupport::TestCase
fields = [ date_field, name_field ]
raw_csv_str = <<-ROWS
raw_file_str = <<-ROWS
date,Custom Field Header,extra_field
invalid_date_value,Starbucks drink,Food
2024-01-02,Amazon stuff,Shopping
@ -82,7 +82,7 @@ class Import::CsvTest < ActiveSupport::TestCase
"name" => "Custom Field Header"
}
csv = Import::Csv.create_with_field_mappings(raw_csv_str, fields, mappings)
csv = Import::Csv.create_with_field_mappings(raw_file_str, fields, mappings)
assert_equal %w[ date name ], csv.table.headers
assert_equal 2, csv.table.size
@ -101,7 +101,7 @@ class Import::CsvTest < ActiveSupport::TestCase
fields = [ date_field, name_field ]
raw_csv_str = <<-ROWS
raw_file_str = <<-ROWS
date;Custom Field Header;extra_field
invalid_date_value;Starbucks drink;Food
2024-01-02;Amazon stuff;Shopping
@ -111,7 +111,7 @@ class Import::CsvTest < ActiveSupport::TestCase
"name" => "Custom Field Header"
}
csv = Import::Csv.create_with_field_mappings(raw_csv_str, fields, mappings, ";")
csv = Import::Csv.create_with_field_mappings(raw_file_str, fields, mappings, ";")
assert_equal %w[ date name ], csv.table.headers
assert_equal 2, csv.table.size

View file

@ -7,7 +7,7 @@ class ImportTest < ActiveSupport::TestCase
@empty_import = imports(:empty_import)
@loaded_import = @empty_import.dup
@loaded_import.update! raw_csv_str: valid_csv_str
@loaded_import.update! raw_file_str: valid_csv_str
end
test "validates the correct col_sep" do
@ -26,17 +26,17 @@ class ImportTest < ActiveSupport::TestCase
end
test "raw csv input must conform to csv spec" do
@empty_import.raw_csv_str = malformed_csv_str
@empty_import.raw_file_str = malformed_csv_str
assert_not @empty_import.valid?
@empty_import.raw_csv_str = valid_csv_str
@empty_import.raw_file_str = valid_csv_str
assert @empty_import.valid?
end
test "can update csv value without affecting raw input" do
assert_equal "Starbucks drink", @loaded_import.csv.table[0][1]
prior_raw_csv_str_value = @loaded_import.raw_csv_str
prior_raw_file_str_value = @loaded_import.raw_file_str
prior_normalized_csv_str_value = @loaded_import.normalized_csv_str
@loaded_import.update_csv! \
@ -45,7 +45,7 @@ class ImportTest < ActiveSupport::TestCase
value: "new_category"
assert_equal "new_category", @loaded_import.csv.table[0][1]
assert_equal prior_raw_csv_str_value, @loaded_import.raw_csv_str
assert_equal prior_raw_file_str_value, @loaded_import.raw_file_str
assert_not_equal prior_normalized_csv_str_value, @loaded_import.normalized_csv_str
end
@ -74,7 +74,7 @@ class ImportTest < ActiveSupport::TestCase
end
test "publishes a valid import with missing data" do
@empty_import.update! raw_csv_str: valid_csv_with_missing_data
@empty_import.update! raw_file_str: valid_csv_with_missing_data
assert_difference -> { Category.count } => 1,
-> { Account::Transaction.count } => 2,
-> { Account::Entry.count } => 2 do
@ -89,7 +89,7 @@ class ImportTest < ActiveSupport::TestCase
end
test "failed publish results in error status" do
@empty_import.update! raw_csv_str: valid_csv_with_invalid_values
@empty_import.update! raw_file_str: valid_csv_with_invalid_values
assert_difference "Account::Transaction.count", 0 do
@empty_import.publish
@ -102,7 +102,7 @@ class ImportTest < ActiveSupport::TestCase
test "can create transactions from csv with custom column separator" do
loaded_import = @empty_import.dup
loaded_import.update! raw_csv_str: valid_csv_str_with_semicolon_separator, col_sep: ";"
loaded_import.update! raw_file_str: valid_csv_str_with_semicolon_separator, col_sep: ";"
transactions = loaded_import.dry_run
assert_equal 4, transactions.count