...
1 package metrics_test
2
3 import (
4 "context"
5 "errors"
6 "testing"
7
8 "github.com/cybertec-postgresql/pgwatch/v3/internal/metrics"
9 "github.com/stretchr/testify/assert"
10 )
11
12 func TestGetDefaultBuiltInMetrics(t *testing.T) {
13 expectedMetrics := []string{"sproc_changes", "table_changes", "index_changes", "privilege_changes", "object_changes", "configuration_changes"}
14 metrics := metrics.GetDefaultBuiltInMetrics()
15 assert.Equal(t, expectedMetrics, metrics, "The default built-in metrics should match the expected list")
16 }
17
18 func TestNewDefaultMetricReader(t *testing.T) {
19 reader, err := metrics.NewDefaultMetricReader(context.Background())
20 assert.NoError(t, err, "Creating a new default metric reader should not produce an error")
21 assert.NotNil(t, reader, "The metric reader should not be nil")
22 }
23
24 func TestDefaultMetricReaderUnsupportedOperations(t *testing.T) {
25 reader, _ := metrics.NewDefaultMetricReader(context.Background())
26 err := reader.WriteMetrics(nil)
27 assert.Equal(t, errors.ErrUnsupported, err, "WriteMetrics should return ErrUnsupported")
28
29 err = reader.DeleteMetric("")
30 assert.Equal(t, errors.ErrUnsupported, err, "DeleteMetric should return ErrUnsupported")
31
32 err = reader.UpdateMetric("", metrics.Metric{})
33 assert.Equal(t, errors.ErrUnsupported, err, "UpdateMetric should return ErrUnsupported")
34
35 err = reader.DeletePreset("")
36 assert.Equal(t, errors.ErrUnsupported, err, "DeletePreset should return ErrUnsupported")
37
38 err = reader.UpdatePreset("", metrics.Preset{})
39 assert.Equal(t, errors.ErrUnsupported, err, "UpdatePreset should return ErrUnsupported")
40
41 metrics, err := reader.GetMetrics()
42 assert.NotNil(t, metrics, "The metrics object should not be nil")
43 assert.NoError(t, err, "GetMetrics should return default metrics")
44 }
45