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

ProjektAdLer / 2D_3D_AdLer / #1399

21 Oct 2025 10:40AM UTC coverage: 96.819% (-0.01%) from 96.832%
#1399

push

mountler
removed unused imports

2891 of 3353 branches covered (86.22%)

6269 of 6475 relevant lines covered (96.82%)

58.11 hits per line

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

95.65
/src/Components/Core/Application/UseCases/GetSettingsConfig/GetSettingsConfigUseCase.ts
1
import { inject, injectable } from "inversify";
2
import CORE_TYPES from "~DependencyInjection/CoreTypes";
3
import IGetSettingsConfigUseCase from "./IGetSettingsConfigUseCase";
4
import type ILoggerPort from "../../Ports/Interfaces/ILoggerPort";
5
import type IEntityContainer from "src/Components/Core/Domain/EntityContainer/IEntityContainer";
6
import SettingsTO from "../../DataTransferObjects/SettingsTO";
7
import SettingsEntity from "src/Components/Core/Domain/Entities/SettingsEntity";
8
import { LogLevelTypes } from "src/Components/Core/Domain/Types/LogLevelTypes";
9
import type ISettingsPort from "../../Ports/Interfaces/ISettingsPort";
10
import PORT_TYPES from "~DependencyInjection/Ports/PORT_TYPES";
11

12
@injectable()
13
export default class GetSettingsConfigUseCase
14
  implements IGetSettingsConfigUseCase
15
{
16
  constructor(
17
    @inject(CORE_TYPES.ILogger)
18
    private logger: ILoggerPort,
19
    @inject(CORE_TYPES.IEntityContainer)
20
    private entityContainer: IEntityContainer,
21
    @inject(PORT_TYPES.ISettingsPort)
22
    private settingsPort: ISettingsPort,
23
  ) {}
24

25
  execute(): SettingsTO {
26
    let settingsEntity =
27
      this.entityContainer.getEntitiesOfType<SettingsEntity>(SettingsEntity)[0];
117✔
28
    let settings = new SettingsTO();
117✔
29

30
    if (!settingsEntity) {
117✔
31
      settingsEntity = {
15✔
32
        volume: undefined,
33
        graphicsQuality: undefined,
34
        language: undefined,
35
        highGraphicsQualityEnabled: undefined,
36
        breakTimeNotificationsEnabled: undefined,
37
      };
38
      this.entityContainer.useSingletonEntity<SettingsEntity>(
15✔
39
        settingsEntity,
40
        SettingsEntity,
41
      );
42
    }
43
    if (settingsEntity.breakTimeNotificationsEnabled === undefined) {
117✔
44
      settings.breakTimeNotificationsEnabled = true;
116✔
45
    } else {
46
      settings.breakTimeNotificationsEnabled =
1✔
47
        settingsEntity.breakTimeNotificationsEnabled;
48
    }
49

50
    if (settingsEntity.highGraphicsQualityEnabled === undefined) {
117✔
51
      settings.highGraphicsQualityEnabled = true;
116✔
52
    } else {
53
      settings.highGraphicsQualityEnabled =
1✔
54
        settingsEntity.highGraphicsQualityEnabled;
55
    }
56

57
    if (settingsEntity.language === undefined) {
117✔
58
      settings.language = "de";
116✔
59
    } else {
60
      settings.language = settingsEntity.language;
1✔
61
    }
62

63
    if (settingsEntity.volume === undefined) {
117✔
64
      settings.volume = 0.5;
115✔
65
    } else {
66
      settings.volume = settingsEntity.volume;
2✔
67
    }
68

69
    if (settingsEntity.graphicsQuality === undefined) {
117!
70
      settings.graphicsQuality = 1;
117✔
71
    } else {
72
      settings.graphicsQuality = settingsEntity.graphicsQuality;
×
73
    }
74

75
    this.logger.log(
117✔
76
      LogLevelTypes.TRACE,
77
      `GetSettingsConfigUseCase: User got settings: Volume:${settings.volume}, Language: ${settings.language}, HighGraphicsQualityEnabled: ${settings.highGraphicsQualityEnabled}, BreakTimeNotificationsEnabled: ${settings.breakTimeNotificationsEnabled}.`,
78
    );
79
    this.settingsPort.onSettingsUpdated(settings);
117✔
80
    return settings;
117✔
81
  }
82
}
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