@@ -19,15 +19,22 @@ import { expect } from 'chai';
19
19
import { SinonStub , stub } from 'sinon' ;
20
20
import '../testing/setup' ;
21
21
import { getFullApp } from '../testing/get-fake-firebase-services' ;
22
- import { getAnalytics , initializeAnalytics } from './api' ;
22
+ import {
23
+ getAnalytics ,
24
+ initializeAnalytics ,
25
+ setDefaultEventParameters
26
+ } from './api' ;
23
27
import { FirebaseApp , deleteApp } from '@firebase/app' ;
24
28
import { AnalyticsError } from './errors' ;
25
29
import * as init from './initialize-analytics' ;
26
30
const fakeAppParams = { appId : 'abcdefgh12345:23405' , apiKey : 'AAbbCCdd12345' } ;
31
+ import * as factory from './factory' ;
32
+ import { defaultEventParametersForInit } from './functions' ;
27
33
28
34
describe ( 'FirebaseAnalytics API tests' , ( ) => {
29
35
let initStub : SinonStub = stub ( ) ;
30
36
let app : FirebaseApp ;
37
+ const wrappedGtag : SinonStub = stub ( ) ;
31
38
32
39
beforeEach ( ( ) => {
33
40
initStub = stub ( init , '_initializeAnalytics' ) . resolves (
@@ -94,4 +101,26 @@ describe('FirebaseAnalytics API tests', () => {
94
101
const analyticsInstance = initializeAnalytics ( app ) ;
95
102
expect ( getAnalytics ( app ) ) . to . equal ( analyticsInstance ) ;
96
103
} ) ;
104
+ it ( 'setDefaultEventParameters() updates defaultEventParametersForInit if gtag does not exist ' , ( ) => {
105
+ const eventParametersForInit = {
106
+ 'github_user' : 'dwyfrequency' ,
107
+ 'company' : 'google'
108
+ } ;
109
+ app = getFullApp ( fakeAppParams ) ;
110
+ setDefaultEventParameters ( eventParametersForInit ) ;
111
+ expect ( defaultEventParametersForInit ) . to . deep . equal ( eventParametersForInit ) ;
112
+ } ) ;
113
+ it ( 'setDefaultEventParameters() calls gtag set if wrappedGtagFunction exists' , ( ) => {
114
+ const eventParametersForInit = {
115
+ 'github_user' : 'dwyfrequency' ,
116
+ 'company' : 'google'
117
+ } ;
118
+ stub ( factory , 'wrappedGtagFunction' ) . get ( ( ) => wrappedGtag ) ;
119
+ app = getFullApp ( fakeAppParams ) ;
120
+ setDefaultEventParameters ( eventParametersForInit ) ;
121
+ expect ( wrappedGtag ) . to . have . been . calledWithExactly (
122
+ 'set' ,
123
+ eventParametersForInit
124
+ ) ;
125
+ } ) ;
97
126
} ) ;
0 commit comments