@@ -8,9 +8,11 @@ describe('Analytics', function () {
8
8
var bind = require ( 'event' ) . bind ;
9
9
var cookie = Analytics . cookie ;
10
10
var equal = require ( 'equals' ) ;
11
+ var extend = require ( 'extend' ) ;
11
12
var group = analytics . group ( ) ;
12
13
var is = require ( 'is' ) ;
13
14
var jQuery = require ( 'jquery' ) ;
15
+ var pageDefaults = require ( '../lib/pageDefaults' ) ;
14
16
var sinon = require ( 'sinon' ) ;
15
17
var store = Analytics . store ;
16
18
var tick = require ( 'next-tick' ) ;
@@ -24,6 +26,7 @@ describe('Analytics', function () {
24
26
var Page = Facade . Page ;
25
27
26
28
var analytics ;
29
+ var contextPage ;
27
30
var Test ;
28
31
var settings ;
29
32
@@ -33,6 +36,8 @@ describe('Analytics', function () {
33
36
key : 'key'
34
37
}
35
38
} ;
39
+
40
+ contextPage = pageDefaults ( ) ;
36
41
} ) ;
37
42
38
43
beforeEach ( function ( ) {
@@ -406,17 +411,6 @@ describe('Analytics', function () {
406
411
el . parentNode . removeChild ( el ) ;
407
412
} ) ;
408
413
409
- it ( 'should append querystring to canonical url' , function ( ) {
410
- var el = document . createElement ( 'link' ) ;
411
- el . rel = 'canonical' ;
412
- el . href = 'baz.com' ;
413
- head . appendChild ( el ) ;
414
- analytics . page ( { search : '?querystring' } ) ;
415
- var page = analytics . _invoke . args [ 0 ] [ 1 ] ;
416
- assert ( 'baz.com?querystring' == page . properties ( ) . url ) ;
417
- el . parentNode . removeChild ( el ) ;
418
- } )
419
-
420
414
it ( 'should accept (category, name, properties, options, callback)' , function ( done ) {
421
415
defaults . category = 'category' ;
422
416
defaults . name = 'name' ;
@@ -538,22 +532,27 @@ describe('Analytics', function () {
538
532
assert . equal ( 'id' , page . obj . anonymousId ) ;
539
533
} ) ;
540
534
535
+ it ( 'should include context.page' , function ( ) {
536
+ analytics . page ( ) ;
537
+ var page = analytics . _invoke . args [ 0 ] [ 1 ] ;
538
+ assert . deepEqual ( page . context ( ) , { page : defaults } ) ;
539
+ } ) ;
540
+
541
541
it ( 'should accept context.traits' , function ( ) {
542
542
analytics . page ( { prop : true } , { traits : { trait : true } } ) ;
543
543
var page = analytics . _invoke . args [ 0 ] [ 1 ] ;
544
544
assert . deepEqual ( page . context ( ) , {
545
+ page : defaults ,
545
546
traits : { trait : true }
546
547
} ) ;
547
548
} ) ;
548
549
549
550
it ( 'should emit page' , function ( done ) {
550
- defaults . category = 'category' ;
551
- defaults . name = 'name' ;
552
551
analytics . once ( 'page' , function ( category , name , props , opts ) {
553
552
assert ( 'category' === category ) ;
554
553
assert ( 'name' === name ) ;
555
- assert ( equal ( opts , { } ) ) ;
556
- assert ( equal ( props , defaults ) ) ;
554
+ assert . deepEqual ( opts , { context : { page : defaults } } ) ;
555
+ assert . deepEqual ( props , extend ( defaults , { category : 'category' , name : 'name' } ) ) ;
557
556
done ( ) ;
558
557
} ) ;
559
558
analytics . page ( 'category' , 'name' , { } , { } ) ;
@@ -755,11 +754,18 @@ describe('Analytics', function () {
755
754
assert . deepEqual ( app , identify . obj . context . app ) ;
756
755
} ) ;
757
756
757
+ it ( 'should include context.page' , function ( ) {
758
+ analytics . identify ( 1 ) ;
759
+ var identify = analytics . _invoke . args [ 0 ] [ 1 ] ;
760
+ assert . deepEqual ( identify . context ( ) , { page : contextPage } ) ;
761
+ } ) ;
762
+
758
763
it ( 'should accept context.traits' , function ( ) {
759
764
analytics . identify ( 1 , { trait : 1 } , { traits : { trait : true } } ) ;
760
765
var identify = analytics . _invoke . args [ 0 ] [ 1 ] ;
761
766
assert . deepEqual ( identify . traits ( ) , { trait : 1 , id : 1 } ) ;
762
767
assert . deepEqual ( identify . context ( ) , {
768
+ page : contextPage ,
763
769
traits : { trait : true }
764
770
} ) ;
765
771
} ) ;
@@ -928,11 +934,18 @@ describe('Analytics', function () {
928
934
assert . deepEqual ( app , group . obj . context . app ) ;
929
935
} ) ;
930
936
937
+ it ( 'should include context.page' , function ( ) {
938
+ analytics . group ( 1 ) ;
939
+ var group = analytics . _invoke . args [ 0 ] [ 1 ] ;
940
+ assert . deepEqual ( group . context ( ) , { page : contextPage } ) ;
941
+ } ) ;
942
+
931
943
it ( 'should accept context.traits' , function ( ) {
932
944
analytics . group ( 1 , { trait : 1 } , { traits : { trait : true } } ) ;
933
945
var group = analytics . _invoke . args [ 0 ] [ 1 ] ;
934
946
assert . deepEqual ( group . traits ( ) , { trait : 1 , id : 1 } ) ;
935
947
assert . deepEqual ( group . context ( ) , {
948
+ page : contextPage ,
936
949
traits : { trait : true }
937
950
} ) ;
938
951
} ) ;
@@ -1088,11 +1101,18 @@ describe('Analytics', function () {
1088
1101
assert . deepEqual ( { } , msg . proxy ( 'context.campaign' ) ) ;
1089
1102
} ) ;
1090
1103
1104
+ it ( 'should include context.page' , function ( ) {
1105
+ analytics . track ( 'event' ) ;
1106
+ var track = analytics . _invoke . args [ 0 ] [ 1 ] ;
1107
+ assert . deepEqual ( track . context ( ) , { page : contextPage } ) ;
1108
+ } ) ;
1109
+
1091
1110
it ( 'should accept context.traits' , function ( ) {
1092
1111
analytics . track ( 'event' , { prop : 1 } , { traits : { trait : true } } ) ;
1093
1112
var track = analytics . _invoke . args [ 0 ] [ 1 ] ;
1094
1113
assert . deepEqual ( track . properties ( ) , { prop : 1 } ) ;
1095
1114
assert . deepEqual ( track . context ( ) , {
1115
+ page : contextPage ,
1096
1116
traits : { trait : true }
1097
1117
} ) ;
1098
1118
} ) ;
@@ -1386,6 +1406,12 @@ describe('Analytics', function () {
1386
1406
} ) ;
1387
1407
} ) ;
1388
1408
1409
+ it ( 'should include context.page' , function ( ) {
1410
+ analytics . alias ( ) ;
1411
+ var alias = analytics . _invoke . args [ 0 ] [ 1 ] ;
1412
+ assert . deepEqual ( alias . context ( ) , { page : contextPage } ) ;
1413
+ } ) ;
1414
+
1389
1415
it ( 'should emit alias' , function ( done ) {
1390
1416
analytics . once ( 'alias' , function ( newId , oldId , options ) {
1391
1417
assert ( 'new' === newId ) ;
0 commit comments