Pubdash: Email sharing handle dashboard deleted (#64247)
dashboard service calls pubdash service when dashboard deleted
This commit is contained in:
@@ -16,8 +16,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/db"
|
||||
"github.com/grafana/grafana/pkg/services/dashboards"
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
"github.com/grafana/grafana/pkg/services/publicdashboards/database"
|
||||
publicDashboardModels "github.com/grafana/grafana/pkg/services/publicdashboards/models"
|
||||
"github.com/grafana/grafana/pkg/services/quota/quotatest"
|
||||
"github.com/grafana/grafana/pkg/services/search/model"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
@@ -27,7 +25,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/tag/tagimpl"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
|
||||
func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
@@ -39,7 +36,6 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
var savedFolder, savedDash, savedDash2 *dashboards.Dashboard
|
||||
var dashboardStore dashboards.Store
|
||||
var starService star.Service
|
||||
var publicDashboardStore *database.PublicDashboardStoreImpl
|
||||
|
||||
setup := func() {
|
||||
sqlStore, cfg = db.InitTestDBwithCfg(t)
|
||||
@@ -53,8 +49,6 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
insertTestDashboard(t, dashboardStore, "test dash 45", 1, savedFolder.ID, false, "prod")
|
||||
savedDash2 = insertTestDashboard(t, dashboardStore, "test dash 67", 1, 0, false, "prod")
|
||||
insertTestRule(t, sqlStore, savedFolder.OrgID, savedFolder.UID)
|
||||
|
||||
publicDashboardStore = database.ProvideStore(sqlStore)
|
||||
}
|
||||
|
||||
t.Run("Should return dashboard model", func(t *testing.T) {
|
||||
@@ -246,78 +240,6 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
require.True(t, errors.Is(err, dashboards.ErrFolderContainsAlertRules))
|
||||
})
|
||||
|
||||
t.Run("Should be able to delete dashboard and related public dashboard", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
uid := util.GenerateShortUID()
|
||||
cmd := publicDashboardModels.SavePublicDashboardCommand{
|
||||
PublicDashboard: publicDashboardModels.PublicDashboard{
|
||||
Uid: uid,
|
||||
DashboardUid: savedDash.UID,
|
||||
OrgId: savedDash.OrgID,
|
||||
IsEnabled: true,
|
||||
TimeSettings: &publicDashboardModels.TimeSettings{},
|
||||
CreatedBy: 1,
|
||||
CreatedAt: time.Now(),
|
||||
AccessToken: "an-access-token",
|
||||
},
|
||||
}
|
||||
_, err := publicDashboardStore.Create(context.Background(), cmd)
|
||||
require.NoError(t, err)
|
||||
pubdashConfig, _ := publicDashboardStore.FindByAccessToken(context.Background(), "an-access-token")
|
||||
require.NotNil(t, pubdashConfig)
|
||||
|
||||
deleteCmd := &dashboards.DeleteDashboardCommand{ID: savedDash.ID, OrgID: savedDash.OrgID}
|
||||
err = dashboardStore.DeleteDashboard(context.Background(), deleteCmd)
|
||||
require.NoError(t, err)
|
||||
|
||||
query := dashboards.GetDashboardQuery{UID: savedDash.UID, OrgID: savedDash.OrgID}
|
||||
dash, getErr := dashboardStore.GetDashboard(context.Background(), &query)
|
||||
require.Equal(t, getErr, dashboards.ErrDashboardNotFound)
|
||||
assert.Nil(t, dash)
|
||||
|
||||
pubdashConfig, err = publicDashboardStore.FindByAccessToken(context.Background(), "an-access-token")
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, pubdashConfig)
|
||||
})
|
||||
|
||||
t.Run("Should be able to delete a dashboard folder, with its dashboard and related public dashboard", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
uid := util.GenerateShortUID()
|
||||
cmd := publicDashboardModels.SavePublicDashboardCommand{
|
||||
PublicDashboard: publicDashboardModels.PublicDashboard{
|
||||
Uid: uid,
|
||||
DashboardUid: savedDash.UID,
|
||||
OrgId: savedDash.OrgID,
|
||||
IsEnabled: true,
|
||||
TimeSettings: &publicDashboardModels.TimeSettings{},
|
||||
CreatedBy: 1,
|
||||
CreatedAt: time.Now(),
|
||||
AccessToken: "an-access-token",
|
||||
},
|
||||
}
|
||||
_, err := publicDashboardStore.Create(context.Background(), cmd)
|
||||
require.NoError(t, err)
|
||||
pubdashConfig, _ := publicDashboardStore.FindByAccessToken(context.Background(), "an-access-token")
|
||||
require.NotNil(t, pubdashConfig)
|
||||
|
||||
deleteCmd := &dashboards.DeleteDashboardCommand{ID: savedFolder.ID, ForceDeleteFolderRules: true}
|
||||
err = dashboardStore.DeleteDashboard(context.Background(), deleteCmd)
|
||||
require.NoError(t, err)
|
||||
|
||||
query := dashboards.GetDashboardsQuery{
|
||||
DashboardIDs: []int64{savedFolder.ID, savedDash.ID},
|
||||
}
|
||||
queryResult, err := dashboardStore.GetDashboards(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(queryResult), 0)
|
||||
|
||||
pubdashConfig, err = publicDashboardStore.FindByAccessToken(context.Background(), "an-access-token")
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, pubdashConfig)
|
||||
})
|
||||
|
||||
t.Run("Should be able to delete a dashboard folder and its children if force delete rules is enabled", func(t *testing.T) {
|
||||
setup()
|
||||
deleteCmd := &dashboards.DeleteDashboardCommand{ID: savedFolder.ID, ForceDeleteFolderRules: true}
|
||||
|
||||
Reference in New Issue
Block a user