github.com/gigforks/mattermost-server@v4.9.1-0.20180619094218-800d97fa55d0+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/stretchr/testify/assert"
    10  
    11  	"github.com/mattermost/mattermost-server/model"
    12  )
    13  
    14  func TestConfigListener(t *testing.T) {
    15  	th := Setup().InitBasic()
    16  	defer th.TearDown()
    17  
    18  	originalSiteName := th.App.Config().TeamSettings.SiteName
    19  	th.App.UpdateConfig(func(cfg *model.Config) {
    20  		cfg.TeamSettings.SiteName = "test123"
    21  	})
    22  
    23  	listenerCalled := false
    24  	listener := func(oldConfig *model.Config, newConfig *model.Config) {
    25  		if listenerCalled {
    26  			t.Fatal("listener called twice")
    27  		}
    28  
    29  		if oldConfig.TeamSettings.SiteName != "test123" {
    30  			t.Fatal("old config contains incorrect site name")
    31  		} else if newConfig.TeamSettings.SiteName != originalSiteName {
    32  			t.Fatal("new config contains incorrect site name")
    33  		}
    34  
    35  		listenerCalled = true
    36  	}
    37  	listenerId := th.App.AddConfigListener(listener)
    38  	defer th.App.RemoveConfigListener(listenerId)
    39  
    40  	listener2Called := false
    41  	listener2 := func(oldConfig *model.Config, newConfig *model.Config) {
    42  		if listener2Called {
    43  			t.Fatal("listener2 called twice")
    44  		}
    45  
    46  		listener2Called = true
    47  	}
    48  	listener2Id := th.App.AddConfigListener(listener2)
    49  	defer th.App.RemoveConfigListener(listener2Id)
    50  
    51  	th.App.ReloadConfig()
    52  
    53  	if !listenerCalled {
    54  		t.Fatal("listener should've been called")
    55  	} else if !listener2Called {
    56  		t.Fatal("listener 2 should've been called")
    57  	}
    58  }
    59  
    60  func TestAsymmetricSigningKey(t *testing.T) {
    61  	th := Setup().InitBasic()
    62  	defer th.TearDown()
    63  	assert.NotNil(t, th.App.AsymmetricSigningKey())
    64  	assert.NotEmpty(t, th.App.ClientConfig()["AsymmetricSigningPublicKey"])
    65  }
    66  
    67  func TestClientConfigWithComputed(t *testing.T) {
    68  	th := Setup().InitBasic()
    69  	defer th.TearDown()
    70  
    71  	config := th.App.ClientConfigWithComputed()
    72  	if _, ok := config["NoAccounts"]; !ok {
    73  		t.Fatal("expected NoAccounts in returned config")
    74  	}
    75  	if _, ok := config["MaxPostSize"]; !ok {
    76  		t.Fatal("expected MaxPostSize in returned config")
    77  	}
    78  }