Skip to content

chore(dev): add fake Radarr mock and wire seed for arr-action testing#3014

Merged
enoch85 merged 1 commit into
developmentfrom
chore/dev-fake-radarr-mock
Jun 2, 2026
Merged

chore(dev): add fake Radarr mock and wire seed for arr-action testing#3014
enoch85 merged 1 commit into
developmentfrom
chore/dev-fake-radarr-mock

Conversation

@enoch85

@enoch85 enoch85 commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

The dev seed mocks the media server (fake-jellyfin / fake-plex) but had no *arr mock, so the collection-handler → RadarrActionHandler flow (DELETE / UNMONITOR / "add import list exclusion") couldn't be driven locally. This adds that piece.

  • tools/dev/fake-radarr.mjs — minimal mock Radarr v3 (:7878, the URL the seed already configures). Resolves any tmdbId to a movie (id == tmdbId), and faithfully replicates Radarr's exclusion semantics: POST /exclusions/bulk de-dupes server-side (idempotent), singular POST /exclusions returns HTTP 400 on a duplicate.
  • seed-db.mjs — collections now carry arrAction / listExclusions, and movie media get a deterministic tmdbId so the action handler resolves them without the media server. "Stale Movies" is seeded as UNMONITOR + listExclusions (exercises the exclusion path); the show collection is DO_NOTHING since there's no fake Sonarr.
  • Docs (AGENTS.md, project-notes) updated to list the new mock and the POST /api/collections/handle workflow.

Run: start fake-jellyfin + fake-radarr, seed, start the app, then POST /api/collections/handle.

@enoch85 enoch85 merged commit 09c5051 into development Jun 2, 2026
14 checks passed
@enoch85 enoch85 deleted the chore/dev-fake-radarr-mock branch June 2, 2026 17:46
maintainerr-automation Bot added a commit that referenced this pull request Jun 2, 2026
* docs(changelog): add v3.13.0 breaking-changes notice

Mirrors the PLEASE NOTE block published on the v3.13.0 GitHub release
(global vs scoped exclusions, per-group exclusion scoping, section
operator default).

* build(deps-dev): bump turbo from 2.9.15 to 2.9.16 (#3005)

Bumps [turbo](https://github.com/vercel/turborepo) from 2.9.15 to 2.9.16.
- [Release notes](https://github.com/vercel/turborepo/releases)
- [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md)
- [Commits](vercel/turborepo@v2.9.15...v2.9.16)

---
updated-dependencies:
- dependency-name: turbo
  dependency-version: 2.9.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(rules): clarify libItem.id is the media server ID in resolve-failure warning

Both the Radarr and Sonarr getters logged "Failed to resolve external IDs
for 'X' with id 'Y'" where Y is libItem.id — the media server's internal
item id (Plex ratingKey, Jellyfin item id), not a TMDB/external id.
Multiple readers have misread it as a wrong stored TMDB id (issue #2990).
Reword to "(media server ID 'Y')" so the field is self-explanatory.

No behaviour change.

* build(deps): bump nodemailer from 8.0.9 to 8.0.10 (#3006)

Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 8.0.9 to 8.0.10.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](nodemailer/nodemailer@v8.0.9...v8.0.10)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 8.0.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump react-router-dom from 7.15.1 to 7.16.0 (#3007)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.15.1 to 7.16.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.16.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(dev): add fake Radarr mock and wire seed for arr-action testing (#3014)

* fix: make collection handling failure notifications name the failing collection (#3013)

* fix: use Radarr bulk exclusions endpoint to avoid duplicate 400 failure (#3012)

* fix(collections): don't force-delete Seerr requests for episode rules (#3015)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: maintainerr-automation[bot] <261505141+maintainerr-automation[bot]@users.noreply.github.com>
Co-authored-by: enoch85 <mailto@danielhansson.nu>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@maintainerr-automation

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.14.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant