mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 06:02:25 +08:00
77 lines
2.4 KiB
Go
77 lines
2.4 KiB
Go
package dualwrite
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/mock"
|
|
"github.com/stretchr/testify/require"
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
|
|
dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1"
|
|
folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1"
|
|
)
|
|
|
|
func TestIsReadingLegacyDashboardsAndFolders(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
setupMockSvc func(*MockService)
|
|
expectedResult bool
|
|
}{
|
|
{
|
|
name: "both folders and dashboards are read from unified storage",
|
|
setupMockSvc: func(svc *MockService) {
|
|
svc.On("ReadFromUnified", mock.Anything, folders.FolderResourceInfo.GroupResource()).Return(true, nil)
|
|
svc.On("ReadFromUnified", mock.Anything, schema.GroupResource{
|
|
Group: dashboard.GROUP,
|
|
Resource: dashboard.DASHBOARD_RESOURCE,
|
|
}).Return(true, nil)
|
|
},
|
|
expectedResult: false,
|
|
},
|
|
{
|
|
name: "only folders are read from unified storage",
|
|
setupMockSvc: func(svc *MockService) {
|
|
svc.On("ReadFromUnified", mock.Anything, folders.FolderResourceInfo.GroupResource()).Return(true, nil)
|
|
svc.On("ReadFromUnified", mock.Anything, schema.GroupResource{
|
|
Group: dashboard.GROUP,
|
|
Resource: dashboard.DASHBOARD_RESOURCE,
|
|
}).Return(false, nil)
|
|
},
|
|
expectedResult: true,
|
|
},
|
|
{
|
|
name: "only dashboards are read from unified storage",
|
|
setupMockSvc: func(svc *MockService) {
|
|
svc.On("ReadFromUnified", mock.Anything, folders.FolderResourceInfo.GroupResource()).Return(false, nil)
|
|
svc.On("ReadFromUnified", mock.Anything, schema.GroupResource{
|
|
Group: dashboard.GROUP,
|
|
Resource: dashboard.DASHBOARD_RESOURCE,
|
|
}).Return(true, nil)
|
|
},
|
|
expectedResult: true,
|
|
},
|
|
{
|
|
name: "neither folders nor dashboards are read from unified storage",
|
|
setupMockSvc: func(svc *MockService) {
|
|
svc.On("ReadFromUnified", mock.Anything, folders.FolderResourceInfo.GroupResource()).Return(false, nil)
|
|
svc.On("ReadFromUnified", mock.Anything, schema.GroupResource{
|
|
Group: dashboard.GROUP,
|
|
Resource: dashboard.DASHBOARD_RESOURCE,
|
|
}).Return(false, nil)
|
|
},
|
|
expectedResult: true,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
mockSvc := NewMockService(t)
|
|
tt.setupMockSvc(mockSvc)
|
|
|
|
result := IsReadingLegacyDashboardsAndFolders(context.Background(), mockSvc)
|
|
require.Equal(t, tt.expectedResult, result)
|
|
})
|
|
}
|
|
}
|