mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
6f8ac86a43
Introduce an indexer-wide option to skip automatic searches for books with future release dates (config key: `indexer.skip_unreleased`, default ON). Adds a GET/PUT admin API for indexer options, a UI toggle on the Indexers settings tab (persisted on save), and persistence of a request-level releaseDate in the Prisma schema. Adds a new request status `awaiting_release` and wires it through constants, UI components (StatusBadge, RequestCard, RecentRequestsTable, Audiobook card/modal, RequestActions), API request flows (bookdate swipe, request creation, manual search, request PATCHs, request listing groups), and services. Implements a pure release-date utility (isUnreleased / shouldSkipAutoSearch) and updates background processors: monitor-rss-feeds (skip matches but do not mutate status), retry-missing-torrents (drives bidirectional transitions between awaiting_search and awaiting_release and queues searches when appropriate), and request-creator/bookdate swipe (gate initial auto-search). Adds tests for the swipe gate and other related test updates. Logs transitions and gate decisions for observability.
24 lines
649 B
TypeScript
24 lines
649 B
TypeScript
/**
|
|
* Component: Job Queue Mock Factory
|
|
* Documentation: documentation/backend/services/jobs.md
|
|
*/
|
|
|
|
import { vi } from 'vitest';
|
|
|
|
export const createJobQueueMock = () => ({
|
|
addSearchJob: vi.fn(),
|
|
addSearchEbookJob: vi.fn(),
|
|
addDownloadJob: vi.fn(),
|
|
addMonitorJob: vi.fn(),
|
|
addOrganizeJob: vi.fn(),
|
|
addPlexScanJob: vi.fn(),
|
|
addPlexMatchJob: vi.fn(),
|
|
addPlexRecentlyAddedJob: vi.fn(),
|
|
addMonitorRssFeedsJob: vi.fn(),
|
|
addAudibleRefreshJob: vi.fn(),
|
|
addRetryMissingTorrentsJob: vi.fn(),
|
|
addRetryFailedImportsJob: vi.fn(),
|
|
addCleanupSeededTorrentsJob: vi.fn(),
|
|
addNotificationJob: vi.fn().mockResolvedValue(undefined),
|
|
});
|