Files
ArrQueueCleaner/tests/test-utils.ts
TheLegendTubaGuy e2a032e7da Add nofiles releases rule (#9)
* Added No files rule

* Spacing was way off :(

* Added eslint and pr workflow for eslint

* Removed test only pr workflow pr, replaced with lint and test
2025-09-10 22:01:48 -05:00

57 lines
1.6 KiB
TypeScript

import { Config, QueueItem } from '../src/types';
type DeepPartial<T> = {
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};
export const createMockConfig = (overrides: DeepPartial<Config> = {}): Config => ({
sonarr: {
host: 'http://localhost:8989',
apiKey: 'test-api-key',
enabled: true,
...overrides.sonarr
},
rules: {
removeQualityBlocked: false,
blockRemovedQualityReleases: false,
removeArchiveBlocked: false,
blockRemovedArchiveReleases: false,
removeNoFilesReleases: false,
blockRemovedNoFilesReleases: false,
...overrides.rules
},
schedule: overrides.schedule || '*/5 * * * *',
logLevel: overrides.logLevel || 'info'
});
export const createMockQueueItem = (overrides: Partial<QueueItem> = {}): QueueItem => ({
id: 123,
title: 'Test.Show.S01E01',
status: 'completed',
trackedDownloadStatus: 'warning',
trackedDownloadState: 'importPending',
statusMessages: [],
...overrides
});
export const createQualityBlockedItem = (): QueueItem =>
createMockQueueItem({
statusMessages: [{
messages: ['upgrade for existing episode']
}]
});
export const createArchiveBlockedItem = (): QueueItem =>
createMockQueueItem({
statusMessages: [{
messages: ['Found archive file, might need to be extracted']
}]
});
export const createNoFilesBlockedItem = (): QueueItem =>
createMockQueueItem({
statusMessages: [{
messages: ['No files found are eligible for import']
}]
});