• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Nikorag / iplayarr / 14473087310

15 Apr 2025 03:16PM UTC coverage: 33.286% (+10.4%) from 22.916%
14473087310

push

github

web-flow
Merge pull request #104 from Nikorag/0425_tests

120 of 500 branches covered (24.0%)

Branch coverage included in aggregate %.

160 of 215 new or added lines in 9 files covered. (74.42%)

1 existing line in 1 file now uncovered.

576 of 1591 relevant lines covered (36.2%)

1.61 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

24.14
/src/service/configService.ts
1
import dotenv from 'dotenv'
5✔
2

3
import { IplayarrParameter } from '../types/IplayarrParameters';
5✔
4
import { QueuedStorage } from '../types/QueuedStorage'
5✔
5

6

7
dotenv.config();
5✔
8

9
const storage : QueuedStorage = new QueuedStorage();
5✔
10

11

12
export interface ConfigMap {
13
    [key: string] : string
14
}
15

16
async function getConfigMap() : Promise<ConfigMap> {
17
    return (await storage.getItem('config')) || {};
×
18
}
19

20
const configService = {
5✔
21
    getAllConfig : async () : Promise<ConfigMap> =>  {
22
        const configMap : ConfigMap = {};
×
23
        for (const param of Object.values(IplayarrParameter)){
×
24
            const parameter : string | undefined = await configService.getParameter(param);
×
25
            if (parameter){
×
26
                configMap[param] = parameter;
×
27
            }
28
        }
29
        return configMap;
×
30
    },
31

32
    defaultConfigMap : {
33
        'DEBUG' : 'false',
34
        'ACTIVE_LIMIT' : '3',
35
        'REFRESH_SCHEDULE' : '0 * * * *',
36
        'AUTH_USERNAME' : 'admin',
37
        'AUTH_PASSWORD' : '5f4dcc3b5aa765d61d8327deb882cf99',
38
        'FALLBACK_FILENAME_SUFFIX' : 'WEB.H264-BBC',
39
        'MOVIE_FILENAME_TEMPLATE' : '{{#if synonym}}{{synonym}}{{else}}{{title}}{{/if}}.BBC.WEB-DL.AAC.2.0.{{quality}}.H.264',
40
        'TV_FILENAME_TEMPLATE' : '{{#if synonym}}{{synonym}}{{else}}{{title}}{{/if}}.S{{season}}E{{episode}}.WEB.{{quality}}.H.264.BBC',
41
        'VIDEO_QUALITY' : 'hd',
42
        'RSS_FEED_HOURS' : '48',
43
        'NATIVE_SEARCH' : 'true',
44
        'ARCHIVE_ENABLED' : 'false'
45
    } as ConfigMap,
46

47
    getParameter : async (parameter: IplayarrParameter): Promise<string | undefined> => {
48
        const configMap = await getConfigMap();
×
49
        return configMap[parameter.toString()] || process.env[parameter.toString()] || configService.defaultConfigMap[parameter.toString()];
×
50
    },
51

52
    getParameters : async (...parameters : IplayarrParameter[]): Promise<(string | undefined)[]> => {
NEW
53
        return await Promise.all(parameters.map(configService.getParameter));
×
54
    },
55

56
    setParameter : async (parameter: IplayarrParameter, value : string) : Promise<void> => {
57
        const configMap = await getConfigMap();
×
58
        configMap[parameter] = value;
×
59
        await storage.setItem('config', configMap);
×
60
    },
61

62
    removeParameter : async (parameter: IplayarrParameter) : Promise<void> => {
63
        const configMap = await getConfigMap();
×
64
        delete configMap[parameter];
×
65
        await storage.setItem('config', configMap);
×
66
    }
67
}
68

69
export default configService;
5✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc