@@ -16,5 +16,144 @@ let logger: Logger = Logger(subsystem: "SkipFirebaseAnalyticsTests", category: "
1616 func testSkipFirebaseAnalyticsTests( ) async throws {
1717 Analytics . logEvent ( " x " , parameters: [ " a " : [ 1 , 2 , false ] ] )
1818 }
19- }
2019
20+ func testLogEventWithNoParameters( ) {
21+ // Verify logEvent compiles with no parameters
22+ let _: ( String , [ String : Any ] ? ) -> Void = Analytics . logEvent
23+ }
24+
25+ func testLogEventWithStringParameters( ) {
26+ let _: ( String , [ String : Any ] ? ) -> Void = Analytics . logEvent
27+ // Verify parameter types compile
28+ let params : [ String : Any ] = [
29+ AnalyticsParameterItemName: " test_item " ,
30+ AnalyticsParameterPrice: 9.99 ,
31+ AnalyticsParameterQuantity: 1 ,
32+ AnalyticsParameterCurrency: " USD "
33+ ]
34+ _ = params
35+ }
36+
37+ func testSetUserProperty( ) {
38+ let _: ( String ? , String ) -> Void = Analytics . setUserProperty ( _: forName: )
39+ }
40+
41+ func testSetUserID( ) {
42+ let _: ( String ? ) -> Void = Analytics . setUserID
43+ }
44+
45+ func testSetAnalyticsCollectionEnabled( ) {
46+ let _: ( Bool ) -> Void = Analytics . setAnalyticsCollectionEnabled
47+ }
48+
49+ func testSetDefaultEventParameters( ) {
50+ let _: ( [ String : Any ] ? ) -> Void = Analytics . setDefaultEventParameters
51+ }
52+
53+ func testResetAnalyticsData( ) {
54+ let _: ( ) -> Void = Analytics . resetAnalyticsData
55+ }
56+
57+ func testAppInstanceID( ) {
58+ let _: ( ) -> String ? = Analytics . appInstanceID
59+ }
60+
61+ func testSessionID( ) {
62+ // sessionID is async throws -> Int64?
63+ let _: ( ) async throws -> Int64 ? = Analytics . sessionID
64+ }
65+
66+ func testSetSessionTimeoutInterval( ) {
67+ let _: ( TimeInterval ) -> Void = Analytics . setSessionTimeoutInterval
68+ }
69+
70+ func testConsentTypes( ) {
71+ // Verify ConsentType static members exist and are the right type
72+ let _: ConsentType = . adPersonalization
73+ let _: ConsentType = . adStorage
74+ let _: ConsentType = . adUserData
75+ let _: ConsentType = . analyticsStorage
76+ }
77+
78+ func testConsentStatus( ) {
79+ // Verify ConsentStatus static members exist and are the right type
80+ let _: ConsentStatus = . granted
81+ let _: ConsentStatus = . denied
82+ }
83+
84+ func testSetConsent( ) {
85+ let _: ( [ ConsentType : ConsentStatus ] ) -> Void = Analytics . setConsent
86+ }
87+
88+ func testEventNameConstants( ) {
89+ // Verify event name constants exist and are strings
90+ let events : [ String ] = [
91+ AnalyticsEventAdImpression,
92+ AnalyticsEventAddPaymentInfo,
93+ AnalyticsEventAddShippingInfo,
94+ AnalyticsEventAddToCart,
95+ AnalyticsEventAddToWishlist,
96+ AnalyticsEventAppOpen,
97+ AnalyticsEventBeginCheckout,
98+ AnalyticsEventCampaignDetails,
99+ AnalyticsEventEarnVirtualCurrency,
100+ AnalyticsEventGenerateLead,
101+ AnalyticsEventJoinGroup,
102+ AnalyticsEventLevelEnd,
103+ AnalyticsEventLevelStart,
104+ AnalyticsEventLevelUp,
105+ AnalyticsEventLogin,
106+ AnalyticsEventPostScore,
107+ AnalyticsEventPurchase,
108+ AnalyticsEventRefund,
109+ AnalyticsEventRemoveFromCart,
110+ AnalyticsEventScreenView,
111+ AnalyticsEventSearch,
112+ AnalyticsEventSelectContent,
113+ AnalyticsEventSelectItem,
114+ AnalyticsEventSelectPromotion,
115+ AnalyticsEventShare,
116+ AnalyticsEventSignUp,
117+ AnalyticsEventSpendVirtualCurrency,
118+ AnalyticsEventTutorialBegin,
119+ AnalyticsEventTutorialComplete,
120+ AnalyticsEventUnlockAchievement,
121+ AnalyticsEventViewCart,
122+ AnalyticsEventViewItem,
123+ AnalyticsEventViewItemList,
124+ AnalyticsEventViewPromotion,
125+ AnalyticsEventViewSearchResults,
126+ ]
127+ XCTAssertFalse ( events. isEmpty)
128+ }
129+
130+ func testParameterNameConstants( ) {
131+ // Verify a representative set of parameter constants exist and are strings
132+ let params : [ String ] = [
133+ AnalyticsParameterItemName,
134+ AnalyticsParameterItemID,
135+ AnalyticsParameterPrice,
136+ AnalyticsParameterQuantity,
137+ AnalyticsParameterCurrency,
138+ AnalyticsParameterValue,
139+ AnalyticsParameterScreenName,
140+ AnalyticsParameterScreenClass,
141+ AnalyticsParameterSearchTerm,
142+ AnalyticsParameterMethod,
143+ AnalyticsParameterScore,
144+ AnalyticsParameterLevel,
145+ AnalyticsParameterContent,
146+ AnalyticsParameterContentType,
147+ AnalyticsParameterCoupon,
148+ AnalyticsParameterTransactionID,
149+ AnalyticsParameterShipping,
150+ AnalyticsParameterTax,
151+ ]
152+ XCTAssertFalse ( params. isEmpty)
153+ }
154+
155+ func testUserPropertyConstants( ) {
156+ let _: String = AnalyticsUserPropertyAllowAdPersonalizationSignals
157+ let _: String = AnalyticsUserPropertySignUpMethod
158+ }
159+ }
0 commit comments