Unistore: get folder by title (#99391)

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
This commit is contained in:
maicon
2025-01-22 16:47:46 -03:00
committed by GitHub
parent 1c8a7d8872
commit 8de4b64047
2 changed files with 131 additions and 11 deletions
@@ -438,16 +438,31 @@ func TestIntegrationFolderServiceViaUnifiedStorage(t *testing.T) {
require.ErrorIs(t, err, dashboards.ErrFolderNotFound)
})
// TODO!!
/*
t.Run("When get folder by title should return folder", func(t *testing.T) {
expected := folder.NewFolder("TEST-"+util.GenerateShortUID(), "")
t.Run("When get folder by Title should return folder", func(t *testing.T) {
title := "foo"
query := &folder.GetFolderQuery{
Title: &title,
OrgID: 1,
SignedInUser: usr,
}
actual, err := service.getFolderByTitle(context.Background(), orgID, expected.Title, nil)
require.Equal(t, expected, actual)
require.NoError(t, err)
})
*/
actual, err := folderService.Get(context.Background(), query)
require.Equal(t, fooFolder, actual)
require.NoError(t, err)
})
t.Run("When get folder by non existing Title should return not found error", func(t *testing.T) {
title := "does not exists"
query := &folder.GetFolderQuery{
Title: &title,
OrgID: 1,
SignedInUser: usr,
}
actual, err := folderService.Get(context.Background(), query)
require.Nil(t, actual)
require.ErrorIs(t, err, dashboards.ErrFolderNotFound)
})
t.Cleanup(func() {
guardian.New = origNewGuardian
@@ -534,6 +549,45 @@ func (r resourceClientMock) Search(ctx context.Context, in *resource.ResourceSea
}, nil
}
if len(in.Options.Fields) > 0 &&
in.Options.Fields[0].Key == resource.SEARCH_FIELD_TITLE &&
in.Options.Fields[0].Operator == "in" &&
len(in.Options.Fields[0].Values) > 0 &&
in.Options.Fields[0].Values[0] == "foo" {
return &resource.ResourceSearchResponse{
Results: &resource.ResourceTable{
Columns: []*resource.ResourceTableColumnDefinition{
{
Name: "_id",
Type: resource.ResourceTableColumnDefinition_STRING,
},
{
Name: "title",
Type: resource.ResourceTableColumnDefinition_STRING,
},
{
Name: "folder",
Type: resource.ResourceTableColumnDefinition_STRING,
},
},
Rows: []*resource.ResourceTableRow{
{
Key: &resource.ResourceKey{
Name: "foo",
Resource: "folders",
},
Cells: [][]byte{
[]byte("123"),
[]byte("folder1"),
[]byte(""),
},
},
},
},
TotalHits: 1,
}, nil
}
// not found
return &resource.ResourceSearchResponse{
Results: &resource.ResourceTable{},