github.com/psyb0t/mattermost-server@v4.6.1-0.20180125161845-5503a1351abf+incompatible/app/config_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package app 5 6 import ( 7 "testing" 8 9 "github.com/mattermost/mattermost-server/model" 10 ) 11 12 func TestConfigListener(t *testing.T) { 13 th := Setup().InitBasic() 14 defer th.TearDown() 15 16 originalSiteName := th.App.Config().TeamSettings.SiteName 17 th.App.UpdateConfig(func(cfg *model.Config) { 18 cfg.TeamSettings.SiteName = "test123" 19 }) 20 21 listenerCalled := false 22 listener := func(oldConfig *model.Config, newConfig *model.Config) { 23 if listenerCalled { 24 t.Fatal("listener called twice") 25 } 26 27 if oldConfig.TeamSettings.SiteName != "test123" { 28 t.Fatal("old config contains incorrect site name") 29 } else if newConfig.TeamSettings.SiteName != originalSiteName { 30 t.Fatal("new config contains incorrect site name") 31 } 32 33 listenerCalled = true 34 } 35 listenerId := th.App.AddConfigListener(listener) 36 defer th.App.RemoveConfigListener(listenerId) 37 38 listener2Called := false 39 listener2 := func(oldConfig *model.Config, newConfig *model.Config) { 40 if listener2Called { 41 t.Fatal("listener2 called twice") 42 } 43 44 listener2Called = true 45 } 46 listener2Id := th.App.AddConfigListener(listener2) 47 defer th.App.RemoveConfigListener(listener2Id) 48 49 th.App.ReloadConfig() 50 51 if !listenerCalled { 52 t.Fatal("listener should've been called") 53 } else if !listener2Called { 54 t.Fatal("listener 2 should've been called") 55 } 56 }