maybe
maybe copied to clipboard
CSV Transaction Imports: Part 1
This is part 1 of a series of PRs that will enable a user to import transactions in bulk via CSV imports.
Overview
The overall strategy is to:
- Accept any valid CSV format
- Allow user to map their columns to our
Transaction
columns - Once mapped and data is cleaned, we'll initiate an import that creates
Transaction
records usingImport::Row
records and the mappings fromImport
A note on inheritance
In the future, we will likely introduce different types of data imports. For example, "Transaction Import", "Account Import", "Category Import".
This initial implementation introduces a broad superclass, Import
, and does not account for inheritance. My main reasoning is to avoid a premature implementation.
In this PR
- A layout refactor (since we'll need another layout for this flow)
- Scaffold out the import resource
- Some additional test stabilization changes
- System tests have been flaky and background jobs have been causing deadlocks, so I have temporarily removed the system tests from CI (still can check them locally) and set the queue adapter to
:test
so that background jobs won't execute during our tests. Eventually, I will be opening a PR that will better structure tests so background jobs are more isolated and re-introduce system tests so we can use them for validation.
- System tests have been flaky and background jobs have been causing deadlocks, so I have temporarily removed the system tests from CI (still can check them locally) and set the queue adapter to