@ -62,8 +62,10 @@ func TestIntegrationProvideFolderService(t *testing.T) {
}
t . Run ( "should register scope resolvers" , func ( t * testing . T ) {
ac := acmock . New ( )
db := db . InitTestDB ( t )
ProvideService ( ac , bus . ProvideBus ( tracing . InitializeTracerForTest ( ) ) , nil , nil , db , featuremgmt . WithFeatures ( ) , supportbundlestest . NewFakeBundleService ( ) , nil , tracing . InitializeTracerForTest ( ) )
db , _ := db . InitTestDBWithCfg ( t )
store := ProvideStore ( db )
ProvideService ( store , ac , bus . ProvideBus ( tracing . InitializeTracerForTest ( ) ) , nil , nil , db ,
featuremgmt . WithFeatures ( ) , supportbundlestest . NewFakeBundleService ( ) , nil , tracing . InitializeTracerForTest ( ) )
require . Len ( t , ac . Calls . RegisterAttributeScopeResolver , 3 )
} )
@ -486,7 +488,7 @@ func TestIntegrationNestedFolderService(t *testing.T) {
CanEditValue : true ,
} )
dashSrv , err := dashboardservice . ProvideDashboardServiceImpl ( cfg , dashStore , folderStore , featuresFlagOn , folderPermissions , dashboardPermissions , ac , serviceWithFlagOn , nil )
dashSrv , err := dashboardservice . ProvideDashboardServiceImpl ( cfg , dashStore , folderStore , featuresFlagOn , folderPermissions , dashboardPermissions , ac , serviceWithFlagOn , nestedFolderStore , nil )
require . NoError ( t , err )
alertStore , err := ngstore . ProvideDBStore ( cfg , featuresFlagOn , db , serviceWithFlagOn , dashSrv , ac )
@ -568,7 +570,7 @@ func TestIntegrationNestedFolderService(t *testing.T) {
} )
dashSrv , err := dashboardservice . ProvideDashboardServiceImpl ( cfg , dashStore , folderStore , featuresFlagOff ,
folderPermissions , dashboardPermissions , ac , serviceWithFlagOff , nil )
folderPermissions , dashboardPermissions , ac , serviceWithFlagOff , nestedFolderStore , nil )
require . NoError ( t , err )
alertStore , err := ngstore . ProvideDBStore ( cfg , featuresFlagOff , db , serviceWithFlagOff , dashSrv , ac )
@ -713,7 +715,7 @@ func TestIntegrationNestedFolderService(t *testing.T) {
tc . service . dashboardStore = dashStore
tc . service . store = nestedFolderStore
dashSrv , err := dashboardservice . ProvideDashboardServiceImpl ( cfg , dashStore , folderStore , tc . featuresFlag , folderPermissions , dashboardPermissions , ac , tc . service , nil )
dashSrv , err := dashboardservice . ProvideDashboardServiceImpl ( cfg , dashStore , folderStore , tc . featuresFlag , folderPermissions , dashboardPermissions , ac , tc . service , tc . service . store , nil )
require . NoError ( t , err )
alertStore , err := ngstore . ProvideDBStore ( cfg , tc . featuresFlag , db , tc . service , dashSrv , ac )
require . NoError ( t , err )
@ -792,7 +794,7 @@ func TestNestedFolderServiceFeatureToggle(t *testing.T) {
guardian . New = g
} )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
dashStore := dashboards . FakeDashboardStore { }
dashStore . On ( "ValidateDashboardBeforeSave" , mock . Anything , mock . AnythingOfType ( "*dashboards.Dashboard" ) , mock . AnythingOfType ( "bool" ) ) . Return ( true , nil )
@ -906,7 +908,7 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
features := featuremgmt . WithFeatures ( )
db , _ := sqlstore . InitTestDB ( t )
@ -944,7 +946,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore . On ( "SaveDashboard" , mock . Anything , mock . AnythingOfType ( "dashboards.SaveDashboardCommand" ) ) . Return ( dash , nil )
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
features := featuremgmt . WithFeatures ( "nestedFolders" )
tempUser := & user . SignedInUser { UserID : 1 , OrgID : orgID , Permissions : map [ int64 ] map [ string ] [ ] string { } }
@ -974,7 +976,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
features := featuremgmt . WithFeatures ( "nestedFolders" )
tempUser := & user . SignedInUser { UserID : 1 , OrgID : orgID , Permissions : map [ int64 ] map [ string ] [ ] string { } }
@ -1044,7 +1046,7 @@ func TestNestedFolderService(t *testing.T) {
nestedFolderUser := & user . SignedInUser { UserID : 1 , OrgID : orgID , Permissions : map [ int64 ] map [ string ] [ ] string { } }
nestedFolderUser . Permissions [ orgID ] = map [ string ] [ ] string { dashboards . ActionFoldersWrite : { dashboards . ScopeFoldersProvider . GetResourceScopeUID ( "some_parent" ) } }
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
db , _ := sqlstore . InitTestDB ( t )
features := featuremgmt . WithFeatures ( "nestedFolders" )
folderSvc := setup ( t , dashStore , dashboardFolderStore , nestedFolderStore , features , acimpl . ProvideAccessControl ( features , zanzana . NewNoopClient ( ) ) , db )
@ -1085,7 +1087,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore . On ( "SaveDashboard" , mock . Anything , mock . AnythingOfType ( "dashboards.SaveDashboardCommand" ) ) . Return ( & dashboards . Dashboard { UID : "newUID" } , nil )
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
db , _ := sqlstore . InitTestDB ( t )
folderSvc := setup ( t , dashStore , dashboardFolderStore , nestedFolderStore , featuremgmt . WithFeatures ( "nestedFolders" ) , actest . FakeAccessControl {
@ -1122,7 +1124,7 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
dashboardFolderStore . On ( "GetFolderByUID" , mock . Anything , orgID , dashboardFolder . UID ) . Return ( f , nil )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedParentFolders = [ ] * folder . Folder {
{ UID : "newFolder" , ParentUID : "newFolder" } ,
{ UID : "newFolder2" , ParentUID : "newFolder2" } ,
@ -1164,7 +1166,7 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
// return an error from the folder store
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedError = errors . New ( "FAILED" )
// the service return success as long as the legacy create succeeds
@ -1189,7 +1191,7 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
//dashboardFolderStore.On("GetFolderByUID", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("string")).Return(&folder.Folder{}, nil)
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderUser := & user . SignedInUser { UserID : 1 , OrgID : orgID , Permissions : map [ int64 ] map [ string ] [ ] string { } }
@ -1205,7 +1207,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderStore . ExpectedParentFolders = [ ] * folder . Folder {
{ UID : "newFolder" , ParentUID : "newFolder" } ,
@ -1236,7 +1238,7 @@ func TestNestedFolderService(t *testing.T) {
nestedFolderUser . Permissions [ orgID ] = map [ string ] [ ] string { dashboards . ActionFoldersWrite : { dashboards . ScopeFoldersProvider . GetResourceAllScope ( ) } }
features := featuremgmt . WithFeatures ( "nestedFolders" )
folderSvc := setup ( t , & dashboards . FakeDashboardStore { } , foldertest . NewFakeFolderStore ( t ) , NewFakeStore ( ) , features , acimpl . ProvideAccessControl ( features , zanzana . NewNoopClient ( ) ) , dbtest . NewFakeDB ( ) )
folderSvc := setup ( t , & dashboards . FakeDashboardStore { } , foldertest . NewFakeFolderStore ( t ) , folder . NewFakeStore ( ) , features , acimpl . ProvideAccessControl ( features , zanzana . NewNoopClient ( ) ) , dbtest . NewFakeDB ( ) )
_ , err := folderSvc . Move ( context . Background ( ) , & folder . MoveFolderCommand { UID : accesscontrol . K6FolderUID , NewParentUID : "newFolder" , OrgID : orgID , SignedInUser : nestedFolderUser } )
require . Error ( t , err , folder . ErrBadRequest )
} )
@ -1246,7 +1248,7 @@ func TestNestedFolderService(t *testing.T) {
nestedFolderUser . Permissions [ orgID ] = map [ string ] [ ] string { dashboards . ActionFoldersWrite : { dashboards . ScopeFoldersProvider . GetResourceAllScope ( ) } }
childUID := "k6-app-child"
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder {
OrgID : orgID ,
UID : childUID ,
@ -1263,7 +1265,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderUser := & user . SignedInUser { UserID : 1 , OrgID : orgID , Permissions : map [ int64 ] map [ string ] [ ] string { } }
@ -1279,7 +1281,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderStore . ExpectedParentFolders = [ ] * folder . Folder {
{ UID : "newFolder" , ParentUID : "newFolder" } ,
@ -1307,7 +1309,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderUser := & user . SignedInUser { UserID : 1 , OrgID : orgID , Permissions : map [ int64 ] map [ string ] [ ] string { } }
nestedFolderUser . Permissions [ orgID ] = map [ string ] [ ] string { dashboards . ActionFoldersCreate : { dashboards . ScopeFoldersProvider . GetResourceScopeUID ( "some_subfolder" ) } }
@ -1328,7 +1330,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderStore . ExpectedError = folder . ErrCircularReference
@ -1350,7 +1352,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderStore . ExpectedParentFolders = [ ] * folder . Folder {
{ UID : "newFolder" , ParentUID : "newFolder" } ,
@ -1376,7 +1378,7 @@ func TestNestedFolderService(t *testing.T) {
dashStore := & dashboards . FakeDashboardStore { }
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedFolder = & folder . Folder { UID : "myFolder" , ParentUID : "newFolder" }
nestedFolderStore . ExpectedParentFolders = [ ] * folder . Folder { { UID : "myFolder" , ParentUID : "12345" } , { UID : "12345" , ParentUID : "" } }
@ -1409,7 +1411,7 @@ func TestNestedFolderService(t *testing.T) {
parents = append ( parents , & folder . Folder { UID : fmt . Sprintf ( "folder%d" , i ) } )
}
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
//nestedFolderStore.ExpectedFolder = &folder.Folder{UID: "myFolder", ParentUID: "newFolder"}
nestedFolderStore . ExpectedParentFolders = parents
@ -1439,7 +1441,7 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest . NewFakeFolderStore ( t )
nestedFolderStore := NewFakeStore ( )
nestedFolderStore := folder . NewFakeStore ( )
nestedFolderStore . ExpectedError = folder . ErrFolderNotFound
folderSvc := setup ( t , dashStore , dashboardFolderStore , nestedFolderStore , featuremgmt . WithFeatures ( "nestedFolders" ) , actest . FakeAccessControl {
@ -1493,6 +1495,7 @@ func TestIntegrationNestedFolderSharedWithMe(t *testing.T) {
dashboardPermissions ,
actest . FakeAccessControl { } ,
serviceWithFlagOn ,
nestedFolderStore ,
nil ,
)
require . NoError ( t , err )
@ -2496,7 +2499,7 @@ func TestSupportBundle(t *testing.T) {
}
}
func CreateSubtreeInStore ( t * testing . T , store s tore, service * Service , depth int , prefix string , cmd folder . CreateFolderCommand ) [ ] * folder . Folder {
func CreateSubtreeInStore ( t * testing . T , store folder . S tore, service * Service , depth int , prefix string , cmd folder . CreateFolderCommand ) [ ] * folder . Folder {
t . Helper ( )
folders := make ( [ ] * folder . Folder , 0 , depth )
@ -2520,7 +2523,7 @@ func CreateSubtreeInStore(t *testing.T, store store, service *Service, depth int
return folders
}
func setup ( t * testing . T , dashStore dashboards . Store , dashboardFolderStore folder . FolderStore , nestedFolderStore s tore, features featuremgmt . FeatureToggles , ac accesscontrol . AccessControl , db db . DB ) folder . Service {
func setup ( t * testing . T , dashStore dashboards . Store , dashboardFolderStore folder . FolderStore , nestedFolderStore folder . S tore, features featuremgmt . FeatureToggles , ac accesscontrol . AccessControl , db db . DB ) folder . Service {
t . Helper ( )
// nothing enabled yet