Add MainActor on AnalysticsManager shared property #24
@@ -207,7 +207,7 @@ enum AnalyticsGenerator {
|
|||||||
" \\(key): \\(value)"
|
" \\(key): \\(value)"
|
||||||
}
|
}
|
||||||
.joined(separator: "\\n")
|
.joined(separator: "\\n")
|
||||||
|
|
||||||
return "\\n" + formattedParams
|
return "\\n" + formattedParams
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,7 +256,7 @@ enum AnalyticsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
📊 Event:
|
📊 Event:
|
||||||
|
|||||||
@@ -35,22 +35,22 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
private func protocolString(visibility: ExtensionVisibility) -> String {
|
private func protocolString(visibility: ExtensionVisibility) -> String {
|
||||||
"""
|
"""
|
||||||
// MARK: - Protocol
|
// MARK: - Protocol
|
||||||
|
|
||||||
\(visibility) protocol AnalyticsManagerProtocol {
|
\(visibility) protocol AnalyticsManagerProtocol {
|
||||||
|
|
||||||
func logScreen(
|
func logScreen(
|
||||||
name: String,
|
name: String,
|
||||||
path: String,
|
path: String,
|
||||||
params: [String: Any]?
|
params: [String: Any]?
|
||||||
)
|
)
|
||||||
|
|
||||||
func logEvent(
|
func logEvent(
|
||||||
name: String,
|
name: String,
|
||||||
action: String,
|
action: String,
|
||||||
category: String,
|
category: String,
|
||||||
params: [String: Any]?
|
params: [String: Any]?
|
||||||
)
|
)
|
||||||
|
|
||||||
func setEnable(_ enable: Bool)
|
func setEnable(_ enable: Bool)
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
@@ -94,7 +94,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
parameters: parameters
|
parameters: parameters
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func logEvent(
|
func logEvent(
|
||||||
name: String,
|
name: String,
|
||||||
action: String,
|
action: String,
|
||||||
@@ -268,7 +268,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
|
|
||||||
var managers: [TrackerType: AnalyticsManagerProtocol] = [:]
|
var managers: [TrackerType: AnalyticsManagerProtocol] = [:]
|
||||||
|
|
||||||
private var isDebugMode: Bool = false
|
private var isDebugMode: Bool = false
|
||||||
|
|
||||||
private var isEnabled: Bool {
|
private var isEnabled: Bool {
|
||||||
@@ -278,7 +278,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private let logger = Logger(subsystem: "resgen", category: "analytics")
|
private let logger = Logger(subsystem: "resgen", category: "analytics")
|
||||||
|
|
||||||
// MARK: - Enable Methods
|
// MARK: - Enable Methods
|
||||||
@@ -307,15 +307,15 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Private Log Methods
|
// MARK: - Private Log Methods
|
||||||
|
|
||||||
private func formattedParams(_ params: [String: Any]?) -> String {
|
private func formattedParams(_ params: [String: Any]?) -> String {
|
||||||
guard let params = params, !params.isEmpty else { return "-" }
|
guard let params = params, !params.isEmpty else { return "-" }
|
||||||
|
|
||||||
let formattedParams = params.map { key, value in
|
let formattedParams = params.map { key, value in
|
||||||
" \\(key): \\(value)"
|
" \\(key): \\(value)"
|
||||||
}
|
}
|
||||||
.joined(separator: "\\n")
|
.joined(separator: "\\n")
|
||||||
|
|
||||||
return "\\n" + formattedParams
|
return "\\n" + formattedParams
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,7 +332,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
🖥️ Screen:
|
🖥️ Screen:
|
||||||
@@ -341,7 +341,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
Params: \\(self.formattedParams(params), privacy: .public)
|
Params: \\(self.formattedParams(params), privacy: .public)
|
||||||
\""")
|
\""")
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.logScreen(
|
manager.logScreen(
|
||||||
name: name,
|
name: name,
|
||||||
path: path,
|
path: path,
|
||||||
@@ -364,7 +364,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
📊 Event:
|
📊 Event:
|
||||||
@@ -374,7 +374,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
Params: \\(self.formattedParams(params), privacy: .public)
|
Params: \\(self.formattedParams(params), privacy: .public)
|
||||||
\""")
|
\""")
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.logEvent(
|
manager.logEvent(
|
||||||
name: name,
|
name: name,
|
||||||
action: action,
|
action: action,
|
||||||
@@ -481,7 +481,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
|
|
||||||
var managers: [TrackerType: AnalyticsManagerProtocol] = [:]
|
var managers: [TrackerType: AnalyticsManagerProtocol] = [:]
|
||||||
|
|
||||||
private var isDebugMode: Bool = false
|
private var isDebugMode: Bool = false
|
||||||
|
|
||||||
private var isEnabled: Bool {
|
private var isEnabled: Bool {
|
||||||
@@ -491,7 +491,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private let logger = Logger(subsystem: "resgen", category: "analytics")
|
private let logger = Logger(subsystem: "resgen", category: "analytics")
|
||||||
|
|
||||||
// MARK: - Enable Methods
|
// MARK: - Enable Methods
|
||||||
@@ -526,12 +526,12 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
|
|
||||||
private func formattedParams(_ params: [String: Any]?) -> String {
|
private func formattedParams(_ params: [String: Any]?) -> String {
|
||||||
guard let params = params, !params.isEmpty else { return "-" }
|
guard let params = params, !params.isEmpty else { return "-" }
|
||||||
|
|
||||||
let formattedParams = params.map { key, value in
|
let formattedParams = params.map { key, value in
|
||||||
" \\(key): \\(value)"
|
" \\(key): \\(value)"
|
||||||
}
|
}
|
||||||
.joined(separator: "\\n")
|
.joined(separator: "\\n")
|
||||||
|
|
||||||
return "\\n" + formattedParams
|
return "\\n" + formattedParams
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -546,9 +546,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
🖥️ Screen:
|
🖥️ Screen:
|
||||||
@@ -557,7 +557,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
Params: \\(self.formattedParams(params), privacy: .public)
|
Params: \\(self.formattedParams(params), privacy: .public)
|
||||||
\""")
|
\""")
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.logScreen(
|
manager.logScreen(
|
||||||
name: name,
|
name: name,
|
||||||
path: path,
|
path: path,
|
||||||
@@ -565,7 +565,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func logEvent(
|
private func logEvent(
|
||||||
name: String,
|
name: String,
|
||||||
action: String,
|
action: String,
|
||||||
@@ -578,9 +578,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
📊 Event:
|
📊 Event:
|
||||||
@@ -590,7 +590,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
Params: \\(self.formattedParams(params), privacy: .public)
|
Params: \\(self.formattedParams(params), privacy: .public)
|
||||||
\""")
|
\""")
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.logEvent(
|
manager.logEvent(
|
||||||
name: name,
|
name: name,
|
||||||
action: action,
|
action: action,
|
||||||
@@ -599,9 +599,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - section_one
|
// MARK: - section_one
|
||||||
|
|
||||||
internal func logScreenS1DefOne() {
|
internal func logScreenS1DefOne() {
|
||||||
logScreen(
|
logScreen(
|
||||||
name: "s1 def one",
|
name: "s1 def one",
|
||||||
@@ -609,7 +609,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
params: nil
|
params: nil
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal func logEventS1DefTwo() {
|
internal func logEventS1DefTwo() {
|
||||||
logEvent(
|
logEvent(
|
||||||
name: "s1 def two",
|
name: "s1 def two",
|
||||||
@@ -618,9 +618,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
params: nil
|
params: nil
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - section_two
|
// MARK: - section_two
|
||||||
|
|
||||||
internal func logScreenS2DefOne() {
|
internal func logScreenS2DefOne() {
|
||||||
logScreen(
|
logScreen(
|
||||||
name: "s2 def one",
|
name: "s2 def one",
|
||||||
@@ -702,7 +702,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
|
|
||||||
var managers: [TrackerType: AnalyticsManagerProtocol] = [:]
|
var managers: [TrackerType: AnalyticsManagerProtocol] = [:]
|
||||||
|
|
||||||
private var isDebugMode: Bool = false
|
private var isDebugMode: Bool = false
|
||||||
|
|
||||||
private var isEnabled: Bool {
|
private var isEnabled: Bool {
|
||||||
@@ -712,7 +712,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private let logger = Logger(subsystem: "resgen", category: "analytics")
|
private let logger = Logger(subsystem: "resgen", category: "analytics")
|
||||||
|
|
||||||
// MARK: - Enable Methods
|
// MARK: - Enable Methods
|
||||||
@@ -745,15 +745,15 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Private Log Methods
|
// MARK: - Private Log Methods
|
||||||
|
|
||||||
private func formattedParams(_ params: [String: Any]?) -> String {
|
private func formattedParams(_ params: [String: Any]?) -> String {
|
||||||
guard let params = params, !params.isEmpty else { return "-" }
|
guard let params = params, !params.isEmpty else { return "-" }
|
||||||
|
|
||||||
let formattedParams = params.map { key, value in
|
let formattedParams = params.map { key, value in
|
||||||
" \\(key): \\(value)"
|
" \\(key): \\(value)"
|
||||||
}
|
}
|
||||||
.joined(separator: "\\n")
|
.joined(separator: "\\n")
|
||||||
|
|
||||||
return "\\n" + formattedParams
|
return "\\n" + formattedParams
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -768,9 +768,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
🖥️ Screen:
|
🖥️ Screen:
|
||||||
@@ -779,7 +779,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
Params: \\(self.formattedParams(params), privacy: .public)
|
Params: \\(self.formattedParams(params), privacy: .public)
|
||||||
\""")
|
\""")
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.logScreen(
|
manager.logScreen(
|
||||||
name: name,
|
name: name,
|
||||||
path: path,
|
path: path,
|
||||||
@@ -787,7 +787,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func logEvent(
|
private func logEvent(
|
||||||
name: String,
|
name: String,
|
||||||
action: String,
|
action: String,
|
||||||
@@ -800,9 +800,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
managers.values.forEach { manager in
|
managers.values.forEach { manager in
|
||||||
|
|
||||||
if isDebugMode {
|
if isDebugMode {
|
||||||
logger.debug(\"""
|
logger.debug(\"""
|
||||||
📊 Event:
|
📊 Event:
|
||||||
@@ -812,7 +812,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
|
|||||||
Params: \\(self.formattedParams(params), privacy: .public)
|
Params: \\(self.formattedParams(params), privacy: .public)
|
||||||
\""")
|
\""")
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.logEvent(
|
manager.logEvent(
|
||||||
name: name,
|
name: name,
|
||||||
action: action,
|
action: action,
|
||||||
|
|||||||
Reference in New Issue
Block a user