@@ -19,15 +19,22 @@ import { expect } from 'chai';
1919import { SinonStub , stub } from 'sinon' ;
2020import '../testing/setup' ;
2121import { getFullApp } from '../testing/get-fake-firebase-services' ;
22- import { getAnalytics , initializeAnalytics } from './api' ;
22+ import {
23+ getAnalytics ,
24+ initializeAnalytics ,
25+ setDefaultEventParameters
26+ } from './api' ;
2327import { FirebaseApp , deleteApp } from '@firebase/app' ;
2428import { AnalyticsError } from './errors' ;
2529import * as init from './initialize-analytics' ;
2630const fakeAppParams = { appId : 'abcdefgh12345:23405' , apiKey : 'AAbbCCdd12345' } ;
31+ import * as factory from './factory' ;
32+ import { defaultEventParametersForInit } from './functions' ;
2733
2834describe ( 'FirebaseAnalytics API tests' , ( ) => {
2935 let initStub : SinonStub = stub ( ) ;
3036 let app : FirebaseApp ;
37+ const wrappedGtag : SinonStub = stub ( ) ;
3138
3239 beforeEach ( ( ) => {
3340 initStub = stub ( init , '_initializeAnalytics' ) . resolves (
@@ -94,4 +101,26 @@ describe('FirebaseAnalytics API tests', () => {
94101 const analyticsInstance = initializeAnalytics ( app ) ;
95102 expect ( getAnalytics ( app ) ) . to . equal ( analyticsInstance ) ;
96103 } ) ;
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+ } ) ;
97126} ) ;
0 commit comments