Fix Tests Analytics (#17)
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good

Reviewed-on: #17
Reviewed-by: Thibaut Schmitt <t.schmitt@openium.fr>
Co-authored-by: Loris Perret <l.perret@openium.fr>
Co-committed-by: Loris Perret <l.perret@openium.fr>
This commit is contained in:
2025-07-17 14:11:27 +02:00
committed by Thibaut Schmitt
parent 187980933e
commit 4426091dcb
11 changed files with 475 additions and 446 deletions

View File

@@ -70,7 +70,7 @@ class AnalyticsFileParser {
private static func getParameters(from parameters: [AnalyticsParameterDTO]) -> [AnalyticsParameter] {
func verify(value: String?, for type: ParameterType) {
guard let value, value.isEmpty == false else { return }
switch type {
case .int:
if Int(value) == nil {
@@ -78,23 +78,26 @@ class AnalyticsFileParser {
print(error.description)
Analytics.exit(withError: error)
}
case .bool:
if Bool(value.lowercased()) == nil {
let error = AnalyticsError.invalidParameter("type of \(value) is not \(type)")
print(error.description)
Analytics.exit(withError: error)
}
case .double:
if Double(value) == nil {
let error = AnalyticsError.invalidParameter("type of \(value) is not \(type)")
print(error.description)
Analytics.exit(withError: error)
}
case .string:
break
}
}
return parameters.map { dtoParameter in
// Type
let type = dtoParameter.type.uppercasedFirst()
@@ -104,13 +107,13 @@ class AnalyticsFileParser {
print(error.description)
Analytics.exit(withError: error)
}
if dtoParameter.value != nil, dtoParameter.replaceIn != nil {
let error = AnalyticsError.invalidParameter("you can't set 'value' and 'replaceIn' for \(dtoParameter.name)")
print(error.description)
Analytics.exit(withError: error)
}
verify(value: dtoParameter.value, for: typeEnum)
verify(value: dtoParameter.defaultValue, for: typeEnum)
@@ -147,7 +150,7 @@ class AnalyticsFileParser {
}
if let parameters {
definition.parameters = AnalyticsFileParser.getParameters(from: parameters)
definition.parameters = Self.getParameters(from: parameters)
}
return definition
@@ -215,7 +218,7 @@ class AnalyticsFileParser {
if let category = event.category {
definition.category = category
}
if let action = event.action {
definition.action = action
}