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  }