PublicDashboards: do not return errors when resource not found from store layer (#57838)

This commit is contained in:
Ezequiel Victorero
2022-10-31 11:22:27 -03:00
committed by GitHub
parent f0ab4bea8c
commit 46093c1267
8 changed files with 147 additions and 61 deletions
@@ -81,7 +81,7 @@ func TestIntegrationFindDashboard(t *testing.T) {
t.Run("FindDashboard can get original dashboard by uid", func(t *testing.T) {
setup()
dashboard, err := publicdashboardStore.FindDashboard(context.Background(), savedDashboard.Uid, savedDashboard.OrgId)
dashboard, err := publicdashboardStore.FindDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
require.NoError(t, err)
require.Equal(t, savedDashboard.Uid, dashboard.Uid)
@@ -228,7 +228,7 @@ func TestIntegrationFindByDashboardUid(t *testing.T) {
savedDashboard = insertTestDashboard(t, dashboardStore, "testDashie", 1, 0, true)
}
t.Run("returns isPublic and set dashboardUid and orgId", func(t *testing.T) {
t.Run("returns public dashboard by dashboardUid", func(t *testing.T) {
setup()
savedPubdash := insertPublicDashboard(t, publicdashboardStore, savedDashboard.Uid, savedDashboard.OrgId, false)
pubdash, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
@@ -236,10 +236,11 @@ func TestIntegrationFindByDashboardUid(t *testing.T) {
assert.Equal(t, savedPubdash, pubdash)
})
t.Run("returns dashboard errDashboardIdentifierNotSet", func(t *testing.T) {
t.Run("returns nil when identifier is not set", func(t *testing.T) {
setup()
_, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, "")
require.Error(t, dashboards.ErrDashboardIdentifierNotSet, err)
pubdash, err := publicdashboardStore.FindByDashboardUid(context.Background(), savedDashboard.OrgId, "")
assert.Nil(t, err)
assert.Nil(t, pubdash)
})
t.Run("returns along with public dashboard when exists", func(t *testing.T) {
@@ -267,12 +268,74 @@ func TestIntegrationFindByDashboardUid(t *testing.T) {
assert.True(t, assert.ObjectsAreEqualValues(&cmd.PublicDashboard, pubdash))
})
t.Run("returns error when public dashboard doesn't exist", func(t *testing.T) {
t.Run("returns nil when public dashboard doesn't exist", func(t *testing.T) {
setup()
pubdash, err := publicdashboardStore.FindByDashboardUid(context.Background(), 9, "fake-dashboard-uid")
require.Error(t, err)
require.Nil(t, pubdash)
assert.Equal(t, ErrPublicDashboardNotFound, err)
require.NoError(t, err)
assert.Nil(t, pubdash)
})
}
func TestIntegrationFindByAccessToken(t *testing.T) {
var sqlStore db.DB
var cfg *setting.Cfg
var dashboardStore *dashboardsDB.DashboardStore
var publicdashboardStore *PublicDashboardStoreImpl
var savedDashboard *models.Dashboard
setup := func() {
sqlStore, cfg = db.InitTestDBwithCfg(t)
dashboardStore = dashboardsDB.ProvideDashboardStore(sqlStore, cfg, featuremgmt.WithFeatures(), tagimpl.ProvideService(sqlStore, cfg))
publicdashboardStore = ProvideStore(sqlStore)
savedDashboard = insertTestDashboard(t, dashboardStore, "testDashie", 1, 0, true)
}
t.Run("returns public dashboard by accessToken", func(t *testing.T) {
setup()
savedPubdash := insertPublicDashboard(t, publicdashboardStore, savedDashboard.Uid, savedDashboard.OrgId, false)
pubdash, err := publicdashboardStore.FindByAccessToken(context.Background(), savedPubdash.AccessToken)
require.NoError(t, err)
assert.Equal(t, savedPubdash, pubdash)
})
t.Run("returns nil when identifier is not set", func(t *testing.T) {
setup()
pubdash, err := publicdashboardStore.FindByAccessToken(context.Background(), "")
assert.Nil(t, err)
assert.Nil(t, pubdash)
})
t.Run("returns along with public dashboard when exists", func(t *testing.T) {
setup()
cmd := SavePublicDashboardCommand{
PublicDashboard: PublicDashboard{
IsEnabled: true,
Uid: "pubdash-uid",
DashboardUid: savedDashboard.Uid,
OrgId: savedDashboard.OrgId,
TimeSettings: DefaultTimeSettings,
CreatedAt: DefaultTime,
CreatedBy: 7,
AccessToken: "thisisavalidaccesstoken",
},
}
// insert test public dashboard
err := publicdashboardStore.Save(context.Background(), cmd)
require.NoError(t, err)
// retrieve from db
pubdash, err := publicdashboardStore.FindByAccessToken(context.Background(), cmd.PublicDashboard.AccessToken)
require.NoError(t, err)
assert.True(t, assert.ObjectsAreEqualValues(&cmd.PublicDashboard, pubdash))
})
t.Run("returns error when public dashboard doesn't exist", func(t *testing.T) {
setup()
pubdash, err := publicdashboardStore.FindByAccessToken(context.Background(), "fake-accessToken-uid")
require.NoError(t, err)
assert.Nil(t, pubdash)
})
}
@@ -336,7 +399,8 @@ func TestIntegrationSavePublicDashboard(t *testing.T) {
AccessToken: "NOTAREALUUID",
},
})
assert.Error(t, err, dashboards.ErrDashboardIdentifierNotSet)
require.Error(t, err)
assert.Equal(t, err, dashboards.ErrDashboardIdentifierNotSet)
})
}