Skip to content

test(vst): make the VST-pack download test runnable + add a test CI#57

Closed
mhglover wants to merge 1 commit into
got-feedBack:mainfrom
mhglover:test/vst-download-runnable-and-ci
Closed

test(vst): make the VST-pack download test runnable + add a test CI#57
mhglover wants to merge 1 commit into
got-feedBack:mainfrom
mhglover:test/vst-download-runnable-and-ci

Conversation

@mhglover

Copy link
Copy Markdown
Contributor

What

Follow-up to the opt-in VST-pack work (#55): the VST download path shipped with zero runnable test coverage, and this repo had no test CI — only the four VST3-build workflows.

  • tests/test_vst_pack_download.py was un-collectable. It did from tools import content_packs — a module that lives in the core feedBack repo, not here (tools/ isn't even a package in this repo). pytest failed at collection, so the end-to-end download test (stream → sha256-verify → nested-extract → loader-finds-it) never ran, and neither did the sha-mismatch rejection or the per-platform slice selection.

Changes

  • Make the download test self-contained. Rebuild the sliced pack inline with the same nested arcname layout content_packs.build_vst_pack emits (amps/Foo.vst3/Contents/<platform-dir>/…, foreign platform dirs dropped) instead of importing the core tool. Same contract exercised — the real _download_vst_pack worker and _bundled_vst_plugins() loader — with no cross-repo import. All 3 tests now pass.
  • Add .github/workflows/tests.yml — runs pytest + node --test tests/*.test.js on every PR/push. First test CI in the repo.
  • Quarantine 3 pre-existing failures (watcher/manifest path handling, unrelated to VST packs) via xfail(strict=False) with a "drop the marker in the PR that fixes it" note — so introducing CI protects the rest of the suite instead of blocking on reds that predate it.

Verification

Run exactly as the workflow does:

  • pytest tests/30 passed, 4 skipped, 3 xfailed (0 failures)
  • node --test tests/*.test.js4 pass

The 3 new/fixed VST tests exercise: successful download+extract+load, sha256-mismatch rejection (nothing installed), and current-platform slice selection.

Commit is DCO signed off.

The VST download path shipped with zero runnable coverage: its end-to-end test
imported `from tools import content_packs` — a core-repo module absent here
(`tools/` isn't a package in this repo) — so pytest couldn't even collect the
file, and there was no test workflow at all (only VST3-build jobs).

- Rebuild the pack inline (same nested sliced layout content_packs.build_vst_pack
  emits) so the download worker + loader are exercised without the core import.
- Add .github/workflows/tests.yml: pytest + node --test on every PR/push.
- Quarantine 3 pre-existing, unrelated failures (watcher/manifest) via xfail so
  CI protects the rest of the suite; drop each marker in the PR that fixes it.

Signed-off-by: Matthew Harris Glover <matthew@harrisglover.com>
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@mhglover, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 21 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d1d5cb6c-4765-4fbe-b5d4-891480a655b7

📥 Commits

Reviewing files that changed from the base of the PR and between 8126051 and 94f3f0b.

📒 Files selected for processing (4)
  • .github/workflows/tests.yml
  • tests/test_manifest.py
  • tests/test_vst_pack_download.py
  • tests/test_watcher_paths.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant