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

ProjektAdLer / 2D_3D_AdLer / #1373

25 Sep 2025 10:47AM UTC coverage: 95.723% (+0.01%) from 95.71%
#1373

push

AdLer-Lukas
Merge branch 'main' into sidebar-fullscreenButton

2787 of 3265 branches covered (85.36%)

121 of 186 new or added lines in 17 files covered. (65.05%)

18 existing lines in 8 files now uncovered.

6087 of 6359 relevant lines covered (95.72%)

55.39 hits per line

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

0.0
/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 =
NEW
27
      this.entityContainer.getEntitiesOfType<SettingsEntity>(SettingsEntity)[0];
×
NEW
28
    let settings = new SettingsTO();
×
29

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

NEW
49
    if (settingsEntity.highGraphicsQualityEnabled === undefined) {
×
NEW
50
      settings.highGraphicsQualityEnabled = true;
×
51
    } else {
NEW
52
      settings.highGraphicsQualityEnabled =
×
53
        settingsEntity.highGraphicsQualityEnabled;
54
    }
55

NEW
56
    if (settingsEntity.language === undefined) {
×
NEW
57
      settings.language = "de";
×
58
    } else {
NEW
59
      settings.language = settingsEntity.language;
×
60
    }
61

NEW
62
    if (settingsEntity.volume === undefined) {
×
NEW
63
      settings.volume = 50;
×
64
    } else {
NEW
65
      settings.volume = settingsEntity.volume;
×
66
    }
67

NEW
68
    this.logger.log(
×
69
      LogLevelTypes.TRACE,
70
      `GetSettingsConfigUseCase: User got settings: ${settings}.`,
71
    );
NEW
72
    this.settingsPort.onSettingsUpdated(settings);
×
NEW
73
    return settings;
×
74
  }
75
}
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