Skip to content

Bug-5152-update-donations-export-to-include-inactive-unused-items - #5200

Merged
awwaiid merged 6 commits into
rubyforgood:mainfrom
bsbonus:5165-update-donations-export-with-inactive-items
Jul 19, 2026
Merged

awwaiid merged 6 commits into
rubyforgood:mainfrom
bsbonus:5165-update-donations-export-with-inactive-items

Conversation

@bsbonus

@bsbonus bsbonus commented May 22, 2025 •

Copy link
Copy Markdown
Contributor

Checklist:

X I have performed a self-review of my own code,
X I have commented my code, particularly in hard-to-understand areas,
X I have made corresponding changes to the documentation,
X I have added tests that prove my fix is effective or that my feature works,
X New and existing unit tests pass locally with my changes ("bundle exec rake"),
X Title include "WIP" if work is in progress.
X I acknowledge that I will not force push my branch once reviews have started.

Parital #5152 - partially, will be broken up into multiple PRs

Description

This modifies the query used by the Donations export to also include inactive items and items that were not donated, so that the headers are consistent with the "Distributions" export logic.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

  1. Ensured test data included inactive and non-donated items. Giving the item a unique name is super important.
  2. Exported out Distribution export as reference point
  3. Exported the Donations export before the changes
  4. Exported the Donations export after the changes, compared against Distributions for item columns to ensure match.
  5. Updated and shored up test coverage accordingly

PLease see attached XLXS files to help make sense of this.

This CSV will serve as a reference point for Donations for the item columns, at least.
Distributions_as_reference.csv

This is an example of the data BEFORE the fix -- note how many fewer item columns are in the export
donations_before.csv

This is the fixed version. Note that the total number of item columns matches the Distribution export
donations_after_fix.csv

Comment thread spec/services/exports/export_donations_csv_service_spec.rb Outdated
Comment thread app/services/exports/export_donations_csv_service.rb
@cielf

cielf commented May 23, 2025

Copy link
Copy Markdown
Collaborator

LGTM functionally. Over to @dorner for technical review.

@cielf
cielf requested a review from dorner May 23, 2025 15:32
Comment thread app/services/exports/export_donations_csv_service.rb Outdated
Comment thread app/services/exports/export_donations_csv_service.rb Outdated
Comment thread spec/services/exports/export_donations_csv_service_spec.rb Outdated
@bsbonus
bsbonus requested a review from dorner May 29, 2025 19:43
dorner
dorner previously requested changes May 30, 2025

# Check that the remaining columns match our expected case-insensitive sort
expect(item_columns).to eq(expected_order)
end

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See previous comments re hardcoded CSVs.

@awwaiid

awwaiid commented Sep 13, 2025

Copy link
Copy Markdown
Collaborator

For this, it looks like we should switch to a CSV fixture based spec, and then it should be ready to merge.

@janeewheatley

Copy link
Copy Markdown
Collaborator

@bsbonus Please take a look at this comment: #5200 (comment). Are you available to finish this PR? Thanks!

awwaiid and others added 2 commits July 19, 2026 11:31
Per review: compare the full generated CSV against fixture files in
spec/fixtures/files/ instead of order-independent header/index lookups,
so any change to column order or content fails loudly (a CSV header
reorder is a breaking change for consumers).

- Pin the product drive / manufacturer / donation site names in the
  factories so the fixtures can be fully static, replacing the
  source_name interpolation helper
- Rewrite the new inactive-item and unused-item tests (bug rubyforgood#5152
  coverage) as full-CSV fixture comparisons
- Fold the #generate_csv_data describe block's unique coverage
  (case-insensitive column sort) into a hardcoded fixture test and
  drop the rest, which duplicated the fixture assertions in loose form

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BNy2e1J81K8xbvXraCeN8e
@awwaiid
awwaiid merged commit 85eec48 into rubyforgood:main Jul 19, 2026
11 checks passed
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@bsbonus: Your PR Bug-5152-update-donations-export-to-include-inactive-unused-items is part of today's Human Essentials production release: 2026.08.02.
Thank you very much for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants