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

ProjektAdLer / 2D_3D_AdLer / #1432

17 Nov 2025 01:12PM UTC coverage: 96.819% (-0.1%) from 96.943%
#1432

push

mountler
fixed test

3002 of 3463 branches covered (86.69%)

6484 of 6697 relevant lines covered (96.82%)

60.65 hits per line

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

93.75
/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];
135✔
28

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

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

53
    if (settingsEntity.breakTimeNotificationsEnabled === undefined) {
135✔
54
      settings.breakTimeNotificationsEnabled = true;
133✔
55
    } else {
56
      settings.breakTimeNotificationsEnabled =
2✔
57
        settingsEntity.breakTimeNotificationsEnabled;
58
    }
59

60
    if (settingsEntity.highGraphicsQualityEnabled === undefined) {
135✔
61
      settings.highGraphicsQualityEnabled = true;
133✔
62
    } else {
63
      settings.highGraphicsQualityEnabled =
2✔
64
        settingsEntity.highGraphicsQualityEnabled;
65
    }
66

67
    if (settingsEntity.language === undefined) {
135✔
68
      settings.language = "de";
133✔
69
    } else {
70
      settings.language = settingsEntity.language;
2✔
71
    }
72

73
    if (settingsEntity.volume === undefined) {
135✔
74
      settings.volume = 0.5;
132✔
75
    } else {
76
      settings.volume = settingsEntity.volume;
3✔
77
    }
78

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

85
    if (settingsEntity.cookieConsent !== undefined) {
135✔
86
      settings.cookieConsent = settingsEntity.cookieConsent;
12✔
87
    }
88

89
    if (settingsEntity.lightsEnabled === undefined) {
135!
90
      settings.lightsEnabled = true;
135✔
91
    } else {
92
      settings.lightsEnabled = settingsEntity.lightsEnabled;
×
93
    }
94

95
    this.logger.log(
135✔
96
      LogLevelTypes.TRACE,
97
      `GetSettingsConfigUseCase: User got settings: Volume:${settings.volume}, Language: ${settings.language}, HighGraphicsQualityEnabled: ${settings.highGraphicsQualityEnabled}, BreakTimeNotificationsEnabled: ${settings.breakTimeNotificationsEnabled}, CookieConsent: ${settings.cookieConsent}, Lights: ${settings.lightsEnabled}.`,
98
    );
99
    this.settingsPort.onSettingsUpdated(settings);
135✔
100
    return settings;
135✔
101
  }
102
}
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