From ec5bc7c4ab5396ee68f8851de50957a8f578e783 Mon Sep 17 00:00:00 2001 From: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com> Date: Mon, 5 Feb 2024 10:06:11 +0200 Subject: [PATCH] Folders: Fix failure to update folder in SQLite (#81795) --- pkg/services/folder/folderimpl/folder.go | 2 +- pkg/tests/api/folders/api_folder_test.go | 36 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/pkg/services/folder/folderimpl/folder.go b/pkg/services/folder/folderimpl/folder.go index 78a42724677..884bd0d9045 100644 --- a/pkg/services/folder/folderimpl/folder.go +++ b/pkg/services/folder/folderimpl/folder.go @@ -610,7 +610,7 @@ func (s *Service) Update(ctx context.Context, cmd *folder.UpdateFolderCommand) ( namespace, id := cmd.SignedInUser.GetNamespacedID() metrics.MFolderIDsServiceCount.WithLabelValues(metrics.Folder).Inc() - if err := s.bus.Publish(context.Background(), &events.FolderTitleUpdated{ + if err := s.bus.Publish(ctx, &events.FolderTitleUpdated{ Timestamp: foldr.Updated, Title: foldr.Title, ID: dashFolder.ID, // nolint:staticcheck diff --git a/pkg/tests/api/folders/api_folder_test.go b/pkg/tests/api/folders/api_folder_test.go index d9366946a6a..5dbaf651c0b 100644 --- a/pkg/tests/api/folders/api_folder_test.go +++ b/pkg/tests/api/folders/api_folder_test.go @@ -25,6 +25,42 @@ import ( const orgID = 1 +func TestIntegrationUpdateFolder(t *testing.T) { + if testing.Short() { + t.Skip("skipping integration test") + } + + dir, path := testinfra.CreateGrafDir(t, testinfra.GrafanaOpts{ + DisableAnonymous: true, + EnableQuota: true, + }) + + grafanaListedAddr, store := testinfra.StartGrafana(t, dir, path) + // Create user + createUser(t, store, user.CreateUserCommand{ + DefaultOrgRole: string(org.RoleAdmin), + Password: "admin", + Login: "admin", + }) + + adminClient := tests.GetClient(grafanaListedAddr, "admin", "admin") + resp, err := adminClient.Folders.CreateFolder(&models.CreateFolderCommand{ + Title: "folder", + }) + require.NoError(t, err) + require.Equal(t, http.StatusOK, resp.Code()) + + t.Run("update folder should succeed", func(t *testing.T) { + resp, err := adminClient.Folders.UpdateFolder(resp.Payload.UID, &models.UpdateFolderCommand{ + Title: "new title", + Version: resp.Payload.Version, + }) + require.NoError(t, err) + require.Equal(t, http.StatusOK, resp.Code()) + require.Equal(t, "new title", resp.Payload.Title) + }) +} + func TestIntegrationCreateFolder(t *testing.T) { if testing.Short() { t.Skip("skipping integration test")