mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 02:11:50 +08:00
Set Query Title when searching folder by title (#101169)
* Set Query to Title when serching folder by title Signed-off-by: Maicon Costa <maiconscosta@gmail.com> --------- Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
This commit is contained in:
@ -314,16 +314,11 @@ func (s *Service) getFolderByTitleFromApiServer(ctx context.Context, orgID int64
|
|||||||
|
|
||||||
request := &resource.ResourceSearchRequest{
|
request := &resource.ResourceSearchRequest{
|
||||||
Options: &resource.ListOptions{
|
Options: &resource.ListOptions{
|
||||||
Key: folderkey,
|
Key: folderkey,
|
||||||
Fields: []*resource.Requirement{
|
Fields: []*resource.Requirement{},
|
||||||
{
|
|
||||||
Key: resource.SEARCH_FIELD_TITLE_PHRASE,
|
|
||||||
Operator: string(selection.In),
|
|
||||||
Values: []string{title},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Labels: []*resource.Requirement{},
|
Labels: []*resource.Requirement{},
|
||||||
},
|
},
|
||||||
|
Query: title,
|
||||||
Limit: folderSearchLimit}
|
Limit: folderSearchLimit}
|
||||||
|
|
||||||
if parentUID != nil {
|
if parentUID != nil {
|
||||||
|
@ -769,6 +769,98 @@ func TestSearchFoldersFromApiServer(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetFoldersFromApiServer(t *testing.T) {
|
||||||
|
fakeK8sClient := new(client.MockK8sHandler)
|
||||||
|
guardian.MockDashboardGuardian(&guardian.FakeDashboardGuardian{
|
||||||
|
CanSaveValue: true,
|
||||||
|
CanViewValue: true,
|
||||||
|
})
|
||||||
|
folderStore := folder.NewFakeStore()
|
||||||
|
folderStore.ExpectedFolder = &folder.Folder{
|
||||||
|
UID: "parent-uid",
|
||||||
|
ID: 2,
|
||||||
|
Title: "parent title",
|
||||||
|
}
|
||||||
|
service := Service{
|
||||||
|
k8sclient: fakeK8sClient,
|
||||||
|
features: featuremgmt.WithFeatures(featuremgmt.FlagKubernetesClientDashboardsFolders),
|
||||||
|
unifiedStore: folderStore,
|
||||||
|
}
|
||||||
|
user := &user.SignedInUser{OrgID: 1}
|
||||||
|
ctx := identity.WithRequester(context.Background(), user)
|
||||||
|
fakeK8sClient.On("GetNamespace", mock.Anything, mock.Anything).Return("default")
|
||||||
|
|
||||||
|
t.Run("Get folder by title)", func(t *testing.T) {
|
||||||
|
// the search here will return a parent, this will be the parent folder returned when we query for it to add to the hit info
|
||||||
|
fakeFolderStore := folder.NewFakeStore()
|
||||||
|
fakeFolderStore.ExpectedFolder = &folder.Folder{
|
||||||
|
UID: "foouid",
|
||||||
|
ParentUID: "parentuid",
|
||||||
|
ID: 2,
|
||||||
|
OrgID: 1,
|
||||||
|
Title: "foo title",
|
||||||
|
URL: "/dashboards/f/foouid/foo-title",
|
||||||
|
}
|
||||||
|
service.unifiedStore = fakeFolderStore
|
||||||
|
fakeK8sClient.On("Search", mock.Anything, int64(1), &resource.ResourceSearchRequest{
|
||||||
|
Options: &resource.ListOptions{
|
||||||
|
Key: &resource.ResourceKey{
|
||||||
|
Namespace: "default",
|
||||||
|
Group: v0alpha1.FolderResourceInfo.GroupVersionResource().Group,
|
||||||
|
Resource: v0alpha1.FolderResourceInfo.GroupVersionResource().Resource,
|
||||||
|
},
|
||||||
|
Fields: []*resource.Requirement{},
|
||||||
|
Labels: []*resource.Requirement{},
|
||||||
|
},
|
||||||
|
Query: "foo title",
|
||||||
|
Limit: folderSearchLimit}).Return(&resource.ResourceSearchResponse{
|
||||||
|
Results: &resource.ResourceTable{
|
||||||
|
Columns: []*resource.ResourceTableColumnDefinition{
|
||||||
|
{
|
||||||
|
Name: "title",
|
||||||
|
Type: resource.ResourceTableColumnDefinition_STRING,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "folder",
|
||||||
|
Type: resource.ResourceTableColumnDefinition_STRING,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Rows: []*resource.ResourceTableRow{
|
||||||
|
{
|
||||||
|
Key: &resource.ResourceKey{
|
||||||
|
Name: "uid",
|
||||||
|
Resource: "folder",
|
||||||
|
},
|
||||||
|
Cells: [][]byte{
|
||||||
|
[]byte("foouid"),
|
||||||
|
[]byte("parentuid"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
TotalHits: 1,
|
||||||
|
}, nil).Once()
|
||||||
|
|
||||||
|
result, err := service.getFolderByTitleFromApiServer(ctx, 1, "foo title", nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
expectedResult := &folder.Folder{
|
||||||
|
ID: 2,
|
||||||
|
UID: "foouid",
|
||||||
|
ParentUID: "parentuid",
|
||||||
|
Title: "foo title",
|
||||||
|
OrgID: 1,
|
||||||
|
URL: "/dashboards/f/foouid/foo-title",
|
||||||
|
Fullpath: "foo title",
|
||||||
|
FullpathUIDs: "foouid",
|
||||||
|
CreatedByUID: ":0",
|
||||||
|
UpdatedByUID: ":0",
|
||||||
|
}
|
||||||
|
require.Equal(t, expectedResult, result)
|
||||||
|
fakeK8sClient.AssertExpectations(t)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestDeleteFoldersFromApiServer(t *testing.T) {
|
func TestDeleteFoldersFromApiServer(t *testing.T) {
|
||||||
fakeK8sClient := new(client.MockK8sHandler)
|
fakeK8sClient := new(client.MockK8sHandler)
|
||||||
fakeK8sClient.On("GetNamespace", mock.Anything, mock.Anything).Return("default")
|
fakeK8sClient.On("GetNamespace", mock.Anything, mock.Anything).Return("default")
|
||||||
|
Reference in New Issue
Block a user