summaryrefslogtreecommitdiffstats
path: root/store/sql_preference_store_test.go
diff options
context:
space:
mode:
authorFlorian Orben <florian.orben@gmail.com>2015-11-27 23:17:26 +0100
committerFlorian Orben <florian.orben@gmail.com>2015-11-27 23:17:45 +0100
commitc50144de0475da2c5865cb4246f63d285aa452c4 (patch)
tree442382ad3dd80a6a11fdbe38703ad794cc17287e /store/sql_preference_store_test.go
parent61a35066b64085d264fbd049e2a57f70125ca65a (diff)
downloadchat-c50144de0475da2c5865cb4246f63d285aa452c4.tar.gz
chat-c50144de0475da2c5865cb4246f63d285aa452c4.tar.bz2
chat-c50144de0475da2c5865cb4246f63d285aa452c4.zip
add missing unit test
Diffstat (limited to 'store/sql_preference_store_test.go')
-rw-r--r--store/sql_preference_store_test.go72
1 files changed, 72 insertions, 0 deletions
diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go
index 5aed7dba3..6f8f44f47 100644
--- a/store/sql_preference_store_test.go
+++ b/store/sql_preference_store_test.go
@@ -233,6 +233,78 @@ func TestPreferenceDelete(t *testing.T) {
}
}
+func TestIsFeatureEnabled(t *testing.T) {
+ Setup()
+
+ feature1 := "testFeat1"
+ feature2 := "testFeat2"
+ feature3 := "testFeat3"
+
+ userId := model.NewId()
+ category := model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS
+
+ features := model.Preferences{
+ {
+ UserId: userId,
+ Category: category,
+ Name: FEATURE_TOGGLE_PREFIX + feature1,
+ Value: "true",
+ },
+ {
+ UserId: userId,
+ Category: category,
+ Name: model.NewId(),
+ Value: "false",
+ },
+ {
+ UserId: userId,
+ Category: model.NewId(),
+ Name: FEATURE_TOGGLE_PREFIX + feature1,
+ Value: "false",
+ },
+ {
+ UserId: model.NewId(),
+ Category: category,
+ Name: FEATURE_TOGGLE_PREFIX + feature2,
+ Value: "false",
+ },
+ {
+ UserId: model.NewId(),
+ Category: category,
+ Name: FEATURE_TOGGLE_PREFIX + feature3,
+ Value: "foobar",
+ },
+ }
+
+ Must(store.Preference().Save(&features))
+
+ if result := <-store.Preference().IsFeatureEnabled(feature1, userId); result.Err != nil {
+ t.Fatal(result.Err)
+ } else if data := result.Data.(bool); data != true {
+ t.Fatalf("got incorrect setting for feature1, %v=%v", true, data)
+ }
+
+ if result := <-store.Preference().IsFeatureEnabled(feature2, userId); result.Err != nil {
+ t.Fatal(result.Err)
+ } else if data := result.Data.(bool); data != false {
+ t.Fatalf("got incorrect setting for feature2, %v=%v", false, data)
+ }
+
+ // make sure we get false if something different than "true" or "false" has been saved to database
+ if result := <-store.Preference().IsFeatureEnabled(feature3, userId); result.Err != nil {
+ t.Fatal(result.Err)
+ } else if data := result.Data.(bool); data != false {
+ t.Fatalf("got incorrect setting for feature3, %v=%v", false, data)
+ }
+
+ // make sure false is returned if a non-existent feature is queried
+ if result := <-store.Preference().IsFeatureEnabled("someOtherFeature", userId); result.Err != nil {
+ t.Fatal(result.Err)
+ } else if data := result.Data.(bool); data != false {
+ t.Fatalf("got incorrect setting for non-existent feature 'someOtherFeature', %v=%v", false, data)
+ }
+}
+
func TestDeleteUnusedFeatures(t *testing.T) {
Setup()