Skip to content

Commit 4eabb3f

Browse files
committed
add TestWriteMeasurements()
1 parent 92e6a21 commit 4eabb3f

2 files changed

Lines changed: 16 additions & 39 deletions

File tree

internal/reaper/reaper_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package reaper
22

33
import (
44
"context"
5+
"errors"
56
"os"
67
"path/filepath"
78
"testing"
@@ -574,11 +575,22 @@ func TestReaper_FetchMetric(t *testing.T) {
574575
})
575576
}
576577

578+
type mockErr string
579+
580+
func (m mockErr) SyncMetric(string, string, sinks.SyncOp) error {
581+
return errors.New(string(m))
582+
}
583+
584+
func (m mockErr) Write(metrics.MeasurementEnvelope) error {
585+
return errors.New(string(m))
586+
}
587+
577588
func TestWriteMeasurements(t *testing.T) {
578589
ctx, cancel := context.WithCancel(log.WithLogger(t.Context(), log.NewNoopLogger()))
579590
defer cancel()
591+
var err mockErr = "write error"
580592
r := NewReaper(ctx, &cmdopts.Options{
581-
SinksWriter: testutil.NewMockWriter(assert.AnError, false, nil),
593+
SinksWriter: err,
582594
})
583595
go r.WriteMeasurements(ctx)
584596
r.WriteInstanceDown(&sources.SourceConn{})

internal/testutil/mocks.go

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import (
66

77
"github.com/cybertec-postgresql/pgwatch/v5/api/pb"
88
"github.com/cybertec-postgresql/pgwatch/v5/internal/metrics"
9-
"github.com/cybertec-postgresql/pgwatch/v5/internal/sinks"
109
"github.com/cybertec-postgresql/pgwatch/v5/internal/sources"
1110
"google.golang.org/protobuf/types/known/structpb"
1211
)
1312

13+
// Receiver implements the ReceiverServer interface for testing purposes
1414
type Receiver struct {
1515
pb.UnimplementedReceiverServer
1616
}
@@ -45,8 +45,7 @@ func (receiver *Receiver) DefineMetrics(_ context.Context, metricsStruct *struct
4545
return &pb.Reply{Logmsg: "metrics defined successfully"}, nil
4646
}
4747

48-
//---------------Sources-Metrics Mocks--------------
49-
48+
// MockMetricsReaderWriter implements MetricsReaderWriter interface
5049
type MockMetricsReaderWriter struct {
5150
GetMetricsFunc func() (*metrics.Metrics, error)
5251
UpdateMetricFunc func(name string, m metrics.Metric) error
@@ -83,6 +82,7 @@ func (m *MockMetricsReaderWriter) WriteMetrics(metricDefs *metrics.Metrics) erro
8382
return m.WriteMetricsFunc(metricDefs)
8483
}
8584

85+
// MockSourcesReaderWriter implements SourcesReaderWriter interface
8686
type MockSourcesReaderWriter struct {
8787
GetSourcesFunc func() (sources.Sources, error)
8888
UpdateSourceFunc func(md sources.Source) error
@@ -106,38 +106,3 @@ func (m *MockSourcesReaderWriter) DeleteSource(name string) error {
106106
func (m *MockSourcesReaderWriter) WriteSources(srcs sources.Sources) error {
107107
return m.WriteSourcesFunc(srcs)
108108
}
109-
110-
// MockWriter implements Writer and Migrator interfaces
111-
type MockWriter struct {
112-
err error
113-
needsMigration bool
114-
needsMigrationErr error
115-
}
116-
117-
func NewMockWriter(err error, needsMigration bool, needsMigrationErr error) *MockWriter {
118-
return &MockWriter{
119-
err: err,
120-
needsMigration: needsMigration,
121-
needsMigrationErr: needsMigrationErr,
122-
}
123-
}
124-
125-
func (m *MockWriter) SyncMetric(string, string, sinks.SyncOp) error {
126-
return m.err
127-
}
128-
129-
func (m *MockWriter) Write(metrics.MeasurementEnvelope) error {
130-
return m.err
131-
}
132-
133-
func (m *MockWriter) Migrate() error {
134-
return m.err
135-
}
136-
137-
func (m *MockWriter) NeedsMigration() (bool, error) {
138-
return m.needsMigration, m.needsMigrationErr
139-
}
140-
141-
func (m *MockWriter) DefineMetrics(*metrics.Metrics) error {
142-
return m.err
143-
}

0 commit comments

Comments
 (0)