hub/internal/repo/errors_test.go

48 lines
1.0 KiB
Go

package repo
import (
"context"
"testing"
)
func TestCollector(t *testing.T) {
testCases := []struct {
kind ErrorsCollectorKind
expectedCall string
}{
{
Scanner,
"SetLastScanningResults",
},
{
Tracker,
"SetLastTrackingResults",
},
}
for _, tc := range testCases {
tc := tc
t.Run(tc.expectedCall, func(t *testing.T) {
t.Parallel()
// Setup errors collector
rm := &ManagerMock{}
ec := NewErrorsCollector(rm, tc.kind)
// Initialize list of errors for repo1 (repo2 will be implicitly initialized)
ec.Init("repo1")
// Append some errors for both repositories
ec.Append("repo1", "error1")
ec.Append("repo1", "error2")
ec.Append("repo2", "error2")
ec.Append("repo2", "error1")
// Flush errors and check the results were set as expected
rm.On(tc.expectedCall, context.Background(), "repo1", "error1\nerror2").Return(nil)
rm.On(tc.expectedCall, context.Background(), "repo2", "error1\nerror2").Return(nil)
ec.Flush()
rm.AssertExpectations(t)
})
}
}