maybe icon indicating copy to clipboard operation
maybe copied to clipboard

CSV Transaction Imports: Part 1

Open zachgoll opened this issue 9 months ago • 0 comments

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:

  1. Accept any valid CSV format
  2. Allow user to map their columns to our Transaction columns
  3. Once mapped and data is cleaned, we'll initiate an import that creates Transaction records using Import::Row records and the mappings from Import

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.

zachgoll avatar May 02 '24 22:05 zachgoll