@@ -605,6 +605,67 @@ defmodule PlausibleWeb.Api.StatsController.MainGraphTest do
605605 end
606606 end
607607
608+ describe "views_per_visit plot" do
609+ setup [ :create_user , :log_in , :create_site , :create_legacy_site_import ]
610+
611+ test "views_per_visit for 28 days in weekly buckets (native data only)" , % {
612+ conn: conn ,
613+ site: site
614+ } do
615+ populate_stats ( site , [
616+ build ( :pageview , user_id: 1 , timestamp: ~N[ 2021-01-04 00:00:00] ) ,
617+ build ( :pageview , user_id: 1 , timestamp: ~N[ 2021-01-04 00:05:00] ) ,
618+ build ( :pageview , user_id: 2 , timestamp: ~N[ 2021-01-18 00:00:00] ) ,
619+ build ( :pageview , user_id: 2 , timestamp: ~N[ 2021-01-18 00:05:00] ) ,
620+ build ( :pageview , user_id: 2 , timestamp: ~N[ 2021-01-18 00:10:00] )
621+ ] )
622+
623+ response =
624+ do_query ( conn , site , % {
625+ "date_range" => "28d" ,
626+ "relative_date" => "2021-01-29" ,
627+ "metrics" => [ "views_per_visit" ] ,
628+ "dimensions" => [ "time:week" ]
629+ } )
630+
631+ assert response [ "results" ] == [
632+ % { "dimensions" => [ "2021-01-04" ] , "metrics" => [ 2.0 ] } ,
633+ % { "dimensions" => [ "2021-01-18" ] , "metrics" => [ 3.0 ] }
634+ ]
635+ end
636+
637+ test "views_per_visit for a year in monthly buckets (with imported data)" , % {
638+ conn: conn ,
639+ site: site
640+ } do
641+ populate_stats ( site , [
642+ # January 2021 - only imported
643+ build ( :imported_visitors , date: ~D[ 2021-01-01] , visits: 6 , pageviews: 7 ) ,
644+ # March 2021 - imported + native combined
645+ build ( :imported_visitors , date: ~D[ 2021-03-01] , visits: 1 , pageviews: 4 ) ,
646+ build ( :pageview , user_id: 1 , timestamp: ~N[ 2021-03-15 00:00:00] ) ,
647+ build ( :pageview , user_id: 1 , timestamp: ~N[ 2021-03-15 00:05:00] ) ,
648+ # September 2021 - only native
649+ build ( :pageview , user_id: 2 , timestamp: ~N[ 2021-09-01 00:00:00] )
650+ ] )
651+
652+ response =
653+ do_query ( conn , site , % {
654+ "date_range" => "year" ,
655+ "relative_date" => "2021-01-01" ,
656+ "metrics" => [ "views_per_visit" ] ,
657+ "dimensions" => [ "time:month" ] ,
658+ "include" => % { "imports" => true }
659+ } )
660+
661+ assert response [ "results" ] == [
662+ % { "dimensions" => [ "2021-01-01" ] , "metrics" => [ 1.17 ] } ,
663+ % { "dimensions" => [ "2021-03-01" ] , "metrics" => [ 3.0 ] } ,
664+ % { "dimensions" => [ "2021-09-01" ] , "metrics" => [ 1.0 ] }
665+ ]
666+ end
667+ end
668+
608669 describe "visitors plot" do
609670 setup [ :create_user , :log_in , :create_site , :create_legacy_site_import ]
610671
@@ -1469,7 +1530,9 @@ defmodule PlausibleWeb.Api.StatsController.MainGraphTest do
14691530 "metrics" => [ "visitors" ] ,
14701531 "dimensions" => [ "time:hour" ] ,
14711532 "include" => % { "time_labels" => true }
1472- } , now: ~U[ 2021-01-08 08:05:00Z] )
1533+ } ,
1534+ now: ~U[ 2021-01-08 08:05:00Z]
1535+ )
14731536
14741537 assert response [ "meta" ] [ "time_labels" ] == [
14751538 "2021-01-08 00:00:00" ,
@@ -1508,7 +1571,9 @@ defmodule PlausibleWeb.Api.StatsController.MainGraphTest do
15081571 "metrics" => [ "visitors" ] ,
15091572 "dimensions" => [ "time:day" ] ,
15101573 "include" => % { "time_labels" => true }
1511- } , now: ~U[ 2021-01-07 12:00:00Z] )
1574+ } ,
1575+ now: ~U[ 2021-01-07 12:00:00Z]
1576+ )
15121577
15131578 assert response [ "meta" ] [ "time_labels" ] == [
15141579 "2021-01-01" ,
@@ -1547,7 +1612,9 @@ defmodule PlausibleWeb.Api.StatsController.MainGraphTest do
15471612 "metrics" => [ "visitors" ] ,
15481613 "dimensions" => [ "time:month" ] ,
15491614 "include" => % { "time_labels" => true }
1550- } , now: ~U[ 2021-02-07 12:00:00Z] )
1615+ } ,
1616+ now: ~U[ 2021-02-07 12:00:00Z]
1617+ )
15511618
15521619 assert response [ "meta" ] [ "time_labels" ] == [ "2021-01-01" , "2021-02-01" ]
15531620
@@ -1763,7 +1830,9 @@ defmodule PlausibleWeb.Api.StatsController.MainGraphTest do
17631830 "metrics" => [ "visitors" ] ,
17641831 "dimensions" => [ "time:hour" ] ,
17651832 "include" => % { "compare" => "previous_period" , "time_labels" => true }
1766- } , now: ~U[ 2021-01-08 08:05:00Z] )
1833+ } ,
1834+ now: ~U[ 2021-01-08 08:05:00Z]
1835+ )
17671836
17681837 results = response [ "results" ]
17691838
0 commit comments