Sfoglia il codice sorgente

Add AnalyticsSwiftUnit tests to SPM (#11131)

Paul Beusterien 3 anni fa
parent
commit
0b580021df

+ 22 - 1
FirebaseAnalyticsSwift/Tests/SwiftUnit/AnalyticsAPITests.swift

@@ -16,10 +16,31 @@
 
 // MARK: This file is used to evaluate the experience of using Analytics APIs in Swift.
 
-import FirebaseAnalytics
 import Foundation
+import SwiftUI
+
+@testable import FirebaseAnalyticsSwift
+import FirebaseAnalytics
 
 final class AnalyticsAPITests {
+  @available(iOS 13.0, *)
+  func loggedAnalyticsModifierUsage(viewModifier: LoggedAnalyticsModifier,
+                                    content: LoggedAnalyticsModifier.Content) {
+    let _: String = viewModifier.screenName
+    let _: String = viewModifier.screenClass
+    let _: [String: Any] = viewModifier.extraParameters
+    let _: any View = viewModifier.body(content: content)
+  }
+
+  @available(iOS 13.0, *)
+  func viewExtensionUsage(viewModifier: LoggedAnalyticsModifier, view: any View) {
+    let _: any View = view.analyticsScreen(
+      name: "name",
+      class: "class",
+      extraParameters: ["param": 1]
+    )
+  }
+
   func usage() {
     // MARK: - Analytics
 

+ 5 - 0
Package.swift

@@ -328,6 +328,11 @@ let package = Package(
       dependencies: ["FirebaseAnalyticsWrapper"],
       path: "FirebaseAnalyticsSwift/Sources"
     ),
+    .testTarget(
+      name: "AnalyticsSwiftUnit",
+      dependencies: ["FirebaseAnalyticsSwift"],
+      path: "FirebaseAnalyticsSwift/Tests/SwiftUnit"
+    ),
 
     .target(
       name: "FirebaseAnalyticsWithoutAdIdSupportTarget",

+ 73 - 0
scripts/spm_test_schemes/AnalyticsSwiftUnit.xcscheme

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1430"
+   version = "2.2">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "NO"
+            buildForArchiving = "NO"
+            buildForAnalyzing = "NO">
+            <AutocreatedTestPlanReference>
+            </AutocreatedTestPlanReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      shouldAutocreateTestPlan = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "AnalyticsSwiftUnit"
+               BuildableName = "AnalyticsSwiftUnit"
+               BlueprintName = "AnalyticsSwiftUnit"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "AnalyticsSwiftUnit"
+            BuildableName = "AnalyticsSwiftUnit"
+            BlueprintName = "AnalyticsSwiftUnit"
+            ReferencedContainer = "container:">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>