resgen.swift/Tests/ResgenSwiftTests/Analytics/AnalyticsDefinitionTests.swift
Thibaut Schmitt 1dbf4c643d
Some checks reported warnings
gitea-openium/resgen.swift/pipeline/head This commit is unstable
Fix tests for Jenkins that always build for iOS
2025-04-30 12:03:57 +02:00

142 lines
4.0 KiB
Swift

//
// AnalyticsDefinitionTests.swift
//
//
// Created by Loris Perret on 06/12/2023.
//
#if os(macOS)
import Foundation
import XCTest
@testable import ResgenSwift
final class AnalyticsDefinitionTests: XCTestCase {
// MARK: - Matching tags
func testMatchingAnalyticss() {
// Given
let definition = AnalyticsDefinition(id: "definition_name", name: "", type: .screen)
definition.tags = ["ios","iosonly","notranslation"]
// When
let match1 = definition.hasOneOrMoreMatchingTags(inputTags: ["ios"])
let match2 = definition.hasOneOrMoreMatchingTags(inputTags: ["iosonly"])
let match3 = definition.hasOneOrMoreMatchingTags(inputTags: ["notranslation"])
// Expect
XCTAssertTrue(match1)
XCTAssertTrue(match2)
XCTAssertTrue(match3)
}
func testNotMatchingAnalyticss() {
// Given
let definition = AnalyticsDefinition(id: "definition_name", name: "", type: .screen)
definition.tags = ["ios","iosonly","notranslation"]
// When
let match1 = definition.hasOneOrMoreMatchingTags(inputTags: ["droid"])
let match2 = definition.hasOneOrMoreMatchingTags(inputTags: ["droidonly"])
let match3 = definition.hasOneOrMoreMatchingTags(inputTags: ["azerty"])
// Expect
XCTAssertFalse(match1)
XCTAssertFalse(match2)
XCTAssertFalse(match3)
}
// MARK: - Raw properties
func testGeneratedRawPropertyScreen() {
// Given
let definition = AnalyticsDefinition(id: "definition_name", name: "Ecran un", type: .screen)
definition.path = "ecran_un/"
// When
let propertyScreen = definition.getProperty()
// Expect
let expectScreen = """
func logScreenDefinitionName() {
logScreen(
name: "Ecran un",
path: "ecran_un/"
)
}
"""
XCTAssertEqual(propertyScreen.adaptForXCTest(), expectScreen.adaptForXCTest())
}
func testGeneratedRawPropertyEvent() {
// Given
let definition = AnalyticsDefinition(id: "definition_name", name: "Ecran un", type: .event)
// When
let propertyEvent = definition.getProperty()
// Expect
let expectEvent = """
func logEventDefinitionName() {
logEvent(
name: "Ecran un",
action: "",
category: "",
params: [:]
)
}
"""
XCTAssertEqual(propertyEvent.adaptForXCTest(), expectEvent.adaptForXCTest())
}
func testGeneratedRawStaticPropertyScreen() {
// Given
let definition = AnalyticsDefinition(id: "definition_name", name: "Ecran un", type: .screen)
definition.path = "ecran_un/"
// When
let propertyScreen = definition.getStaticProperty()
// Expect
let expectScreen = """
static func logScreenDefinitionName() {
logScreen(
name: "Ecran un",
path: "ecran_un/"
)
}
"""
XCTAssertEqual(propertyScreen.adaptForXCTest(), expectScreen.adaptForXCTest())
}
func testGeneratedRawStaticPropertyEvent() {
// Given
let definition = AnalyticsDefinition(id: "definition_name", name: "Ecran un", type: .event)
// When
let propertyEvent = definition.getStaticProperty()
// Expect
let expectEvent = """
static func logEventDefinitionName() {
logEvent(
name: "Ecran un",
action: "",
category: "",
params: [:]
)
}
"""
XCTAssertEqual(propertyEvent.adaptForXCTest(), expectEvent.adaptForXCTest())
}
}
#endif