From a793eb865151b27f10fd8ff743e229535cc63865 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Thu, 22 Dec 2016 15:00:05 -0500 Subject: Skip intensive stat DB queries when more than a set number of users on the system (#4876) --- api/admin_test.go | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'api/admin_test.go') diff --git a/api/admin_test.go b/api/admin_test.go index e11835380..3af45892d 100644 --- a/api/admin_test.go +++ b/api/admin_test.go @@ -192,6 +192,12 @@ func TestGetTeamAnalyticsStandard(t *testing.T) { t.Fatal("Shouldn't have permissions") } + maxUsersForStats := *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics + defer func() { + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = maxUsersForStats + }() + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1000000 + if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "standard"); err != nil { t.Fatal(err) } else { @@ -303,6 +309,24 @@ func TestGetTeamAnalyticsStandard(t *testing.T) { t.Fatal() } } + + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1 + + if result, err := th.SystemAdminClient.GetSystemAnalytics("standard"); err != nil { + t.Fatal(err) + } else { + rows := result.Data.(model.AnalyticsRows) + + if rows[2].Name != "post_count" { + t.Log(rows.ToJson()) + t.Fatal() + } + + if rows[2].Value != -1 { + t.Log(rows.ToJson()) + t.Fatal() + } + } } func TestGetPostCount(t *testing.T) { @@ -316,6 +340,12 @@ func TestGetPostCount(t *testing.T) { t.Fatal("Shouldn't have permissions") } + maxUsersForStats := *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics + defer func() { + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = maxUsersForStats + }() + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1000000 + if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "post_counts_day"); err != nil { t.Fatal(err) } else { @@ -326,6 +356,19 @@ func TestGetPostCount(t *testing.T) { t.Fatal() } } + + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1 + + if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "post_counts_day"); err != nil { + t.Fatal(err) + } else { + rows := result.Data.(model.AnalyticsRows) + + if rows[0].Value != -1 { + t.Log(rows.ToJson()) + t.Fatal() + } + } } func TestUserCountsWithPostsByDay(t *testing.T) { @@ -339,6 +382,12 @@ func TestUserCountsWithPostsByDay(t *testing.T) { t.Fatal("Shouldn't have permissions") } + maxUsersForStats := *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics + defer func() { + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = maxUsersForStats + }() + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1000000 + if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "user_counts_with_posts_day"); err != nil { t.Fatal(err) } else { @@ -349,6 +398,19 @@ func TestUserCountsWithPostsByDay(t *testing.T) { t.Fatal() } } + + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1 + + if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "user_counts_with_posts_day"); err != nil { + t.Fatal(err) + } else { + rows := result.Data.(model.AnalyticsRows) + + if rows[0].Value != -1 { + t.Log(rows.ToJson()) + t.Fatal() + } + } } func TestGetTeamAnalyticsExtra(t *testing.T) { @@ -360,6 +422,12 @@ func TestGetTeamAnalyticsExtra(t *testing.T) { t.Fatal("Shouldn't have permissions") } + maxUsersForStats := *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics + defer func() { + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = maxUsersForStats + }() + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1000000 + if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "extra_counts"); err != nil { t.Fatal(err) } else { @@ -461,6 +529,24 @@ func TestGetTeamAnalyticsExtra(t *testing.T) { t.Fatal() } } + + *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1 + + if result, err := th.SystemAdminClient.GetSystemAnalytics("extra_counts"); err != nil { + t.Fatal(err) + } else { + rows := result.Data.(model.AnalyticsRows) + + if rows[0].Value != -1 { + t.Log(rows.ToJson()) + t.Fatal() + } + + if rows[1].Value != -1 { + t.Log(rows.ToJson()) + t.Fatal() + } + } } func TestAdminResetMfa(t *testing.T) { -- cgit v1.2.3-1-g7c22