| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /*
- Copyright © The ESO Authors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- https://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package main
- import (
- "strings"
- "testing"
- )
- func TestMainTemplateStartsMetricsServer(t *testing.T) {
- tmpl, err := loadTemplate("templates/main.go.tmpl")
- if err != nil {
- t.Fatalf("loadTemplate() error = %v", err)
- }
- data := prepareTemplateData(&ProviderConfig{
- Provider: providerMetadata{
- Name: "kubernetes",
- DisplayName: "Kubernetes",
- V2Package: "github.com/external-secrets/external-secrets/apis/provider/kubernetes/v2alpha1",
- },
- Stores: []storeConfig{
- {
- GVK: gvkConfig{
- Group: "provider.external-secrets.io",
- Version: "v2alpha1",
- Kind: "Kubernetes",
- },
- V1Provider: "github.com/external-secrets/external-secrets/providers/v1/kubernetes",
- V1ProviderFunc: "NewProvider",
- },
- },
- ConfigPackage: "./config.go",
- })
- rendered, err := executeTemplate(tmpl, data)
- if err != nil {
- t.Fatalf("executeTemplate() error = %v", err)
- }
- output := string(rendered)
- expectedSnippets := []string{
- "ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)",
- "metricsServer := grpcserver.NewMetricsServer(grpcserver.DefaultMetricsPort, nil)",
- "if err := grpcserver.RegisterMetrics(metricsServer.GetRegistry()); err != nil {",
- "go func() {",
- "if err := metricsServer.Start(ctx); err != nil {",
- "log.Fatalf(\"Failed to start metrics server: %v\", err)",
- }
- for _, snippet := range expectedSnippets {
- if !strings.Contains(output, snippet) {
- t.Fatalf("generated main.go missing snippet %q\noutput:\n%s", snippet, output)
- }
- }
- }
|