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

ProjektAdLer / 2D_3D_AdLer / #1426

10 Nov 2025 11:43AM UTC coverage: 96.099% (-0.2%) from 96.292%
#1426

push

AdLer-Lukas
switched order of privacy and settings buttons in StartScreen

2926 of 3453 branches covered (84.74%)

0 of 2 new or added lines in 1 file covered. (0.0%)

16 existing lines in 5 files now uncovered.

6405 of 6665 relevant lines covered (96.1%)

57.86 hits per line

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

96.55
/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];
122✔
28

29
    if (!settingsEntity) {
122✔
30
      // Lade cookieConsent aus localStorage beim initialen Start
31
      let initialCookieConsent: "accepted" | "declined" | undefined = undefined;
20✔
32
      const storedConsent = localStorage.getItem("adler_cookie_consent");
20✔
33
      if (storedConsent === "accepted" || storedConsent === "declined") {
20✔
34
        initialCookieConsent = storedConsent;
3✔
35
      }
36

37
      settingsEntity = {
20✔
38
        volume: undefined,
39
        graphicsQuality: undefined,
40
        language: undefined,
41
        highGraphicsQualityEnabled: undefined,
42
        breakTimeNotificationsEnabled: undefined,
43
        cookieConsent: initialCookieConsent,
44
      };
45
      this.entityContainer.useSingletonEntity<SettingsEntity>(
20✔
46
        settingsEntity,
47
        SettingsEntity,
48
      );
49
    }
50
    let settings = new SettingsTO();
122✔
51

52
    if (settingsEntity.breakTimeNotificationsEnabled === undefined) {
122✔
53
      settings.breakTimeNotificationsEnabled = true;
120✔
54
    } else {
55
      settings.breakTimeNotificationsEnabled =
2✔
56
        settingsEntity.breakTimeNotificationsEnabled;
57
    }
58

59
    if (settingsEntity.highGraphicsQualityEnabled === undefined) {
122✔
60
      settings.highGraphicsQualityEnabled = true;
120✔
61
    } else {
62
      settings.highGraphicsQualityEnabled =
2✔
63
        settingsEntity.highGraphicsQualityEnabled;
64
    }
65

66
    if (settingsEntity.language === undefined) {
122✔
67
      settings.language = "de";
120✔
68
    } else {
69
      settings.language = settingsEntity.language;
2✔
70
    }
71

72
    if (settingsEntity.volume === undefined) {
122✔
73
      settings.volume = 0.5;
119✔
74
    } else {
75
      settings.volume = settingsEntity.volume;
3✔
76
    }
77

78
    if (settingsEntity.graphicsQuality === undefined) {
122!
79
      settings.graphicsQuality = 1;
122✔
80
    } else {
UNCOV
81
      settings.graphicsQuality = settingsEntity.graphicsQuality;
×
82
    }
83

84
    if (settingsEntity.cookieConsent !== undefined) {
122✔
85
      settings.cookieConsent = settingsEntity.cookieConsent;
4✔
86
    }
87

88
    this.logger.log(
122✔
89
      LogLevelTypes.TRACE,
90
      `GetSettingsConfigUseCase: User got settings: Volume:${settings.volume}, Language: ${settings.language}, HighGraphicsQualityEnabled: ${settings.highGraphicsQualityEnabled}, BreakTimeNotificationsEnabled: ${settings.breakTimeNotificationsEnabled}, CookieConsent: ${settings.cookieConsent}.`,
91
    );
92
    this.settingsPort.onSettingsUpdated(settings);
122✔
93
    return settings;
122✔
94
  }
95
}
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