1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-22 14:49:38 +02:00

Fix CSV import preview crash on empty values (#756)

This commit is contained in:
Jakub Kottnauer 2024-05-17 16:55:15 +02:00 committed by GitHub
parent 1bbfdee463
commit 31ef3d85f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 1 deletions

View file

@ -1,6 +1,6 @@
class Import::Csv class Import::Csv
def self.parse_csv(csv_str) def self.parse_csv(csv_str)
CSV.parse((csv_str || "").strip, headers: true, converters: [ ->(str) { str.strip } ]) CSV.parse((csv_str || "").strip, headers: true, converters: [ ->(str) { str&.strip } ])
end end
def self.create_with_field_mappings(raw_csv_str, fields, field_mappings) def self.create_with_field_mappings(raw_csv_str, fields, field_mappings)

View file

@ -36,6 +36,11 @@ class Import::CsvTest < ActiveSupport::TestCase
assert_not invalid_csv.valid? assert_not invalid_csv.valid?
end end
test "csv with additional columns and empty values" do
csv = Import::Csv.new valid_csv_with_extra_column
assert csv.valid?
end
test "updating a cell returns a copy of the original csv" do test "updating a cell returns a copy of the original csv" do
original_date = "2024-01-01" original_date = "2024-01-01"
new_date = "2024-01-01" new_date = "2024-01-01"

View file

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