mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
parent
633c03d40d
commit
57effed70a
@ -1,13 +1,11 @@
|
||||
package folders
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"runtime"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/dskit/concurrency"
|
||||
"github.com/grafana/grafana-openapi-client-go/client/folders"
|
||||
"github.com/grafana/grafana-openapi-client-go/models"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/resourcepermissions"
|
||||
@ -17,6 +15,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/tests"
|
||||
"github.com/grafana/grafana/pkg/tests/testinfra"
|
||||
"github.com/grafana/grafana/pkg/util/retryer"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
@ -64,23 +63,37 @@ func TestGetFolders(t *testing.T) {
|
||||
|
||||
numberOfFolders := 5
|
||||
indexWithoutPermission := 3
|
||||
err := concurrency.ForEachJob(context.Background(), numberOfFolders, runtime.NumCPU(), func(_ context.Context, job int) error {
|
||||
|
||||
for i := 0; i < numberOfFolders; i++ {
|
||||
respCode := 0
|
||||
folderUID := ""
|
||||
retries := 0
|
||||
maxRetries := 3
|
||||
err := retryer.Retry(func() (retryer.RetrySignal, error) {
|
||||
resp, err := adminClient.Folders.CreateFolder(&models.CreateFolderCommand{
|
||||
Title: fmt.Sprintf("Folder %d", job),
|
||||
UID: fmt.Sprintf("folder-%d", job),
|
||||
Title: fmt.Sprintf("Folder %d", i),
|
||||
UID: fmt.Sprintf("folder-%d", i),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
if retries == maxRetries {
|
||||
return retryer.FuncError, err
|
||||
}
|
||||
require.Equal(t, http.StatusOK, resp.Code())
|
||||
if job == indexWithoutPermission {
|
||||
tests.RemoveFolderPermission(t, permissionsStore, orgID, org.RoleViewer, resp.Payload.UID)
|
||||
t.Log("Removed viewer permission from folder", resp.Payload.UID)
|
||||
retries++
|
||||
return retryer.FuncFailure, nil
|
||||
}
|
||||
return nil
|
||||
})
|
||||
respCode = resp.Code()
|
||||
folderUID = resp.Payload.UID
|
||||
return retryer.FuncComplete, nil
|
||||
}, maxRetries, time.Millisecond*time.Duration(10), time.Second)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, http.StatusOK, respCode)
|
||||
if i == indexWithoutPermission {
|
||||
tests.RemoveFolderPermission(t, permissionsStore, orgID, org.RoleViewer, folderUID)
|
||||
t.Log("Removed viewer permission from folder", folderUID)
|
||||
}
|
||||
}
|
||||
|
||||
t.Run("Admin can get all folders", func(t *testing.T) {
|
||||
res, err := adminClient.Folders.GetFolders(folders.NewGetFoldersParams())
|
||||
require.NoError(t, err)
|
||||
|
Loading…
Reference in New Issue
Block a user