Some checks reported warnings
gitea-openium/resgen.swift/pipeline/head This commit is unstable
142 lines
4.0 KiB
Swift
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
|