From 0b9f8ef28464f9a011863838d948bcf3ee2d56b3 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Fri, 22 Apr 2022 20:17:25 +0530 Subject: [PATCH] MM-43653: Fix incorrect system store update (#20051) https://mattermost.atlassian.net/browse/MM-43653 ```release-note NONE ``` --- store/sqlstore/system_store.go | 2 +- store/storetest/system_store.go | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/store/sqlstore/system_store.go b/store/sqlstore/system_store.go index c7b40afd6d..091ef2831a 100644 --- a/store/sqlstore/system_store.go +++ b/store/sqlstore/system_store.go @@ -78,7 +78,7 @@ func (s SqlSystemStore) SaveOrUpdateWithWarnMetricHandling(system *model.System) } func (s SqlSystemStore) Update(system *model.System) error { - query := "UPDATE Systems SET Name=:Name, Value=:Value" + query := "UPDATE Systems SET Value=:Value WHERE Name=:Name" if _, err := s.GetMasterX().NamedExec(query, system); err != nil { return errors.Wrapf(err, "failed to update system property with name=%s", system.Name) } diff --git a/store/storetest/system_store.go b/store/storetest/system_store.go index 7ba1b0e213..b49cf1715c 100644 --- a/store/storetest/system_store.go +++ b/store/storetest/system_store.go @@ -30,18 +30,25 @@ func testSystemStore(t *testing.T, ss store.Store) { err := ss.System().Save(system) require.NoError(t, err) - systems, _ := ss.System().Get() + system2 := &model.System{Name: model.NewId(), Value: "value2"} + err = ss.System().Save(system2) + require.NoError(t, err) + systems, err := ss.System().Get() + require.NoError(t, err) require.Equal(t, system.Value, systems[system.Name]) - system.Value = "value2" + system.Value = "value1" err = ss.System().Update(system) require.NoError(t, err) - systems2, _ := ss.System().Get() + systems2, err := ss.System().Get() + require.NoError(t, err) require.Equal(t, system.Value, systems2[system.Name]) + require.Equal(t, system2.Value, systems2[system2.Name]) - rsystem, _ := ss.System().GetByName(system.Name) + rsystem, err := ss.System().GetByName(system.Name) + require.NoError(t, err) require.Equal(t, system.Value, rsystem.Value) }