MM-22619: check for nil plugins environment (#13901)

* MM-22619: check for nil plugins environment

Check if plugins were disabled before attempting to collect metrics and emit telemetry for same.

Fixes: https://mattermost.atlassian.net/browse/MM-22619

* Update app/diagnostics_test.go
Этот коммит содержится в:
Jesse Hallam
2020-02-15 18:46:26 -04:00
коммит произвёл GitHub
родитель bd487418f7
Коммит 9a51c73f64
3 изменённых файлов: 82 добавлений и 20 удалений

Просмотреть файл

@@ -68,7 +68,9 @@ func TestDiagnostics(t *testing.T) {
t.SkipNow()
}
th := Setup(t)
th := SetupWithCustomConfig(t, func(config *model.Config) {
*config.PluginSettings.Enable = false
})
defer th.TearDown()
type payload struct {
@@ -147,6 +149,58 @@ func TestDiagnostics(t *testing.T) {
}
})
// Plugins remain disabled at this point
t.Run("SendDailyDiagnosticsPluginsDisabled", func(t *testing.T) {
th.App.sendDailyDiagnostics(true)
var info []string
// Collect the info sent.
Loop:
for {
select {
case result := <-data:
assertPayload(t, result, "", nil)
info = append(info, result.Batch[0].Event)
case <-time.After(time.Second * 1):
break Loop
}
}
for _, item := range []string{
TRACK_CONFIG_SERVICE,
TRACK_CONFIG_TEAM,
TRACK_CONFIG_SQL,
TRACK_CONFIG_LOG,
TRACK_CONFIG_NOTIFICATION_LOG,
TRACK_CONFIG_FILE,
TRACK_CONFIG_RATE,
TRACK_CONFIG_EMAIL,
TRACK_CONFIG_PRIVACY,
TRACK_CONFIG_OAUTH,
TRACK_CONFIG_LDAP,
TRACK_CONFIG_COMPLIANCE,
TRACK_CONFIG_LOCALIZATION,
TRACK_CONFIG_SAML,
TRACK_CONFIG_PASSWORD,
TRACK_CONFIG_CLUSTER,
TRACK_CONFIG_METRICS,
TRACK_CONFIG_SUPPORT,
TRACK_CONFIG_NATIVEAPP,
TRACK_CONFIG_EXPERIMENTAL,
TRACK_CONFIG_ANALYTICS,
TRACK_CONFIG_PLUGIN,
TRACK_ACTIVITY,
TRACK_SERVER,
TRACK_CONFIG_MESSAGE_EXPORT,
// TRACK_PLUGINS,
} {
require.Contains(t, info, item)
}
})
// Enable plugins for the remainder of the tests.
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.PluginSettings.Enable = true })
t.Run("SendDailyDiagnostics", func(t *testing.T) {
th.App.sendDailyDiagnostics(true)