a3daf0e39d
* initial generation * went through doc to add new resource * added dummy kind so grafana will run * added dummy handler and custom route * fix app name * gets custom route working - still a dummy route * adds groupOverride to manifest * adds quotas to grpc client and server * WIP - trying to get api recognized - not working * Gets route working * fixes group and resource vars * expects group and resource as separate params * set content-type header on response * removes Quotas kind and regens * Update grafana-app-sdk to v0.48.5 * Update codegen * updates manifest * formatting * updates grafana-app-sdk version to 0.48.5 * regen ResourceClient mocks * adds tests * remove commented code * uncomment go mod tidy * fix tests and make update workspace * adds quotas app to codeowners * formatting * make gen-apps * deletes temp file * fix generated folder code * make gofmt * make gen-go * make update-workspace * add COPY apps/quotas to Dockerfile * fix test mock * fixes undefined NewFolderStatus() * make gen-apps, and add func for NewFolderStatus * make gen-apps again * make update-workspace * regen folder_object_gen.go * gofmt * fix linting * apps/folder make update-workspace * make gen-apps * make gen-apps * fixes enterprise_imports.go * go get testcontainers * adds feature toggle * make update-workspace * fix go mod * fix another client mock --------- Co-authored-by: Steve Simpson <steve@grafana.com>
57 lines
2.5 KiB
Go
57 lines
2.5 KiB
Go
package appregistry
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/registry/apps/quotas"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/grafana/grafana/pkg/registry/apps/advisor"
|
|
"github.com/grafana/grafana/pkg/registry/apps/alerting/historian"
|
|
"github.com/grafana/grafana/pkg/registry/apps/alerting/notifications"
|
|
"github.com/grafana/grafana/pkg/registry/apps/alerting/rules"
|
|
"github.com/grafana/grafana/pkg/registry/apps/annotation"
|
|
"github.com/grafana/grafana/pkg/registry/apps/correlations"
|
|
"github.com/grafana/grafana/pkg/registry/apps/example"
|
|
"github.com/grafana/grafana/pkg/registry/apps/playlist"
|
|
"github.com/grafana/grafana/pkg/registry/apps/plugins"
|
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
|
)
|
|
|
|
func TestProvideAppInstallers_Table(t *testing.T) {
|
|
playlistInstaller := &playlist.PlaylistAppInstaller{}
|
|
pluginsInstaller := &plugins.AppInstaller{}
|
|
rulesInstaller := &rules.AlertingRulesAppInstaller{}
|
|
correlationsAppInstaller := &correlations.AppInstaller{}
|
|
notificationsAppInstaller := ¬ifications.AlertingNotificationsAppInstaller{}
|
|
annotationAppInstaller := &annotation.AnnotationAppInstaller{}
|
|
exampleAppInstaller := &example.ExampleAppInstaller{}
|
|
advisorAppInstaller := &advisor.AdvisorAppInstaller{}
|
|
historianAppInstaller := &historian.AlertingHistorianAppInstaller{}
|
|
quotasAppInstaller := "as.QuotasAppInstaller{}
|
|
|
|
tests := []struct {
|
|
name string
|
|
flags []any
|
|
rulesInst *rules.AlertingRulesAppInstaller
|
|
expectRulesApp bool
|
|
}{
|
|
{name: "no flags", flags: nil, rulesInst: nil, expectRulesApp: false},
|
|
{name: "rules flag without installer", flags: []any{featuremgmt.FlagKubernetesAlertingRules}, rulesInst: nil, expectRulesApp: false},
|
|
{name: "rules flag with installer", flags: []any{featuremgmt.FlagKubernetesAlertingRules}, rulesInst: rulesInstaller, expectRulesApp: true},
|
|
{name: "rules installer without flag", flags: nil, rulesInst: rulesInstaller, expectRulesApp: false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
features := featuremgmt.WithFeatures(tt.flags...)
|
|
got := ProvideAppInstallers(features, playlistInstaller, pluginsInstaller, nil, tt.rulesInst, correlationsAppInstaller, notificationsAppInstaller, nil, annotationAppInstaller, exampleAppInstaller, advisorAppInstaller, historianAppInstaller, quotasAppInstaller)
|
|
if tt.expectRulesApp {
|
|
require.Contains(t, got, tt.rulesInst)
|
|
} else {
|
|
require.NotContains(t, got, tt.rulesInst)
|
|
}
|
|
})
|
|
}
|
|
}
|