Path: blob/main/component/prometheus/exporter/postgres/postgres_test.go
4096 views
package postgres12import (3"testing"45"github.com/grafana/agent/pkg/integrations/postgres_exporter"6"github.com/grafana/agent/pkg/river"7"github.com/grafana/agent/pkg/river/rivertypes"8config_util "github.com/prometheus/common/config"9"github.com/stretchr/testify/require"10)1112func TestRiverConfigUnmarshal(t *testing.T) {13var exampleRiverConfig = `14data_source_names = ["postgresql://username:password@localhost:5432/database?sslmode=disable"]15disable_settings_metrics = true16disable_default_metrics = true17custom_queries_config_path = "/tmp/queries.yaml"1819autodiscovery {20enabled = false21database_allowlist = ["include1"]22database_denylist = ["exclude1", "exclude2"]23}`2425var args Arguments26err := river.Unmarshal([]byte(exampleRiverConfig), &args)27require.NoError(t, err)2829expected := Arguments{30DataSourceNames: []rivertypes.Secret{rivertypes.Secret("postgresql://username:password@localhost:5432/database?sslmode=disable")},31DisableSettingsMetrics: true,32AutoDiscovery: AutoDiscovery{33Enabled: false,34DatabaseDenylist: []string{"exclude1", "exclude2"},35DatabaseAllowlist: []string{"include1"},36},37DisableDefaultMetrics: true,38CustomQueriesConfigPath: "/tmp/queries.yaml",39}4041require.Equal(t, expected, args)42}4344func TestRiverConfigConvert(t *testing.T) {45var exampleRiverConfig = `46data_source_names = ["postgresql://username:password@localhost:5432/database?sslmode=disable"]47disable_settings_metrics = true48disable_default_metrics = true49custom_queries_config_path = "/tmp/queries.yaml"5051autodiscovery {52enabled = false53database_allowlist = ["include1"]54database_denylist = ["exclude1", "exclude2"]55}`5657var args Arguments58err := river.Unmarshal([]byte(exampleRiverConfig), &args)59require.NoError(t, err)6061c := args.Convert()6263expected := postgres_exporter.Config{64DataSourceNames: []config_util.Secret{config_util.Secret("postgresql://username:password@localhost:5432/database?sslmode=disable")},65DisableSettingsMetrics: true,66AutodiscoverDatabases: false,67ExcludeDatabases: []string{"exclude1", "exclude2"},68IncludeDatabases: []string{"include1"},69DisableDefaultMetrics: true,70QueryPath: "/tmp/queries.yaml",71}72require.Equal(t, expected, *c)73}747576