diff options
Diffstat (limited to 'store')
-rw-r--r-- | store/sql_preference_store.go | 8 | ||||
-rw-r--r-- | store/sql_preference_store_test.go | 18 |
2 files changed, 19 insertions, 7 deletions
diff --git a/store/sql_preference_store.go b/store/sql_preference_store.go index 59c52d888..46cef38b1 100644 --- a/store/sql_preference_store.go +++ b/store/sql_preference_store.go @@ -162,9 +162,9 @@ func (s SqlPreferenceStore) Get(userId string, category string, name string) Sto go func() { result := StoreResult{} - var preferences model.Preferences + var preference model.Preference - if _, err := s.GetReplica().Select(&preferences, + if err := s.GetReplica().SelectOne(&preference, `SELECT * FROM @@ -173,9 +173,9 @@ func (s SqlPreferenceStore) Get(userId string, category string, name string) Sto UserId = :UserId AND Category = :Category AND Name = :Name`, map[string]interface{}{"UserId": userId, "Category": category, "Name": name}); err != nil { - result.Err = model.NewAppError("SqlPreferenceStore.GetByName", "We encounted an error while finding preferences", err.Error()) + result.Err = model.NewAppError("SqlPreferenceStore.Get", "We encounted an error while finding preferences", err.Error()) } else { - result.Data = preferences[0] + result.Data = preference } storeChannel <- result diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index 1feda01d9..76b1bcb17 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -55,7 +55,7 @@ func TestPreferenceGet(t *testing.T) { userId := model.NewId() category := model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW - name := model.PREFERENCE_NAME_TEST + name := model.NewId() preferences := model.Preferences{ { @@ -70,7 +70,7 @@ func TestPreferenceGet(t *testing.T) { }, { UserId: userId, - Category: model.PREFERENCE_CATEGORY_TEST, + Category: model.NewId(), Name: name, }, { @@ -87,6 +87,11 @@ func TestPreferenceGet(t *testing.T) { } else if data := result.Data.(model.Preference); data != preferences[0] { t.Fatal("got incorrect preference") } + + // make sure getting a missing preference fails + if result := <-store.Preference().Get(model.NewId(), model.NewId(), model.NewId()); result.Err == nil { + t.Fatal("no error on getting a missing preference") + } } func TestPreferenceGetCategory(t *testing.T) { @@ -111,7 +116,7 @@ func TestPreferenceGetCategory(t *testing.T) { // same user/name, different category { UserId: userId, - Category: model.PREFERENCE_CATEGORY_TEST, + Category: model.NewId(), Name: name, }, // same name/category, different user @@ -131,4 +136,11 @@ func TestPreferenceGetCategory(t *testing.T) { } else if !((data[0] == preferences[0] && data[1] == preferences[1]) || (data[0] == preferences[1] && data[1] == preferences[0])) { t.Fatal("got incorrect preferences") } + + // make sure getting a missing preference category doesn't fail + if result := <-store.Preference().GetCategory(model.NewId(), model.NewId()); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(model.Preferences); len(data) != 0 { + t.Fatal("shouldn't have got any preferences") + } } |