feat: activity log producers

This commit is contained in:
fsylvain committed 2026-10-06 22:25:23 +02:00
1 parent 50b1649965
commit e37a46a027
93 files changed
+3396 -440

No files matched your search

+10 -10
View File
@@ -32,8 +32,8 @@ func TestUpdatePurgeSettingsRejectsOutOfRangeIntervals(t *testing.T) {
func TestRunPurgeDistinguishesBusyFromConflict(t *testing.T) {
newRun := func(env *mediaEnv) *useCases.RunPurgeUseCase {
merge := useCases.NewMergeMediaUseCase(env.images, env.articles, env.storage)
return useCases.NewRunPurgeUseCase(env.images, env.articles, merge, env.purgeSettings, func() time.Time { return env.clock }, log.New(&bytes.Buffer{}, "", 0))
merge := useCases.NewMergeMediaUseCase(env.images, env.articles, env.storage, discardRecorder)
return useCases.NewRunPurgeUseCase(env.images, env.articles, merge, env.purgeSettings, func() time.Time { return env.clock }, log.New(&bytes.Buffer{}, "", 0), discardRecorder)
}
t.Run("a non-matching fingerprint is a conflict and writes nothing", func(t *testing.T) {
@@ -42,7 +42,7 @@ func TestRunPurgeDistinguishesBusyFromConflict(t *testing.T) {
env.useImages(10, 1)
wrong := "wrong"
_, err := newRun(env).Run(&wrong)
_, err := newRun(env).Run(testCtx, &wrong)
if !errors.Is(err, purge.ErrPurgeConflict) || errors.Is(err, purge.ErrPurgeBusy) {
t.Errorf("expected only ErrPurgeConflict, got %v", err)
@@ -68,13 +68,13 @@ func TestRunPurgeDistinguishesBusyFromConflict(t *testing.T) {
run := newRun(env)
done := make(chan error, 1)
go func() {
_, err := run.Run(nil)
_, err := run.Run(testCtx, nil)
done <- err
}()
<-entered
savesBefore := env.purgeSettings.saveCalls
_, err := run.Run(nil)
_, err := run.Run(testCtx, nil)
if !errors.Is(err, purge.ErrPurgeBusy) || errors.Is(err, purge.ErrPurgeConflict) {
t.Errorf("expected only ErrPurgeBusy, got %v", err)
@@ -93,7 +93,7 @@ func TestRunPurgeDistinguishesBusyFromConflict(t *testing.T) {
env.seedGroup(hashA, 1, 2)
env.useImages(10, 1)
result, err := newRun(env).Run(nil)
result, err := newRun(env).Run(testCtx, nil)
if err != nil || result != (purge.RunResult{GroupsTotal: 1, GroupsPurged: 1, Merged: 1}) {
t.Errorf("unexpected result %+v, %v", result, err)
@@ -148,9 +148,9 @@ func TestMergeMediaExposesTheRewrittenArticleIds(t *testing.T) {
env.useImages(1, 2)
env.useImages(2, 1, 2)
env.useImages(3, 1)
merge := useCases.NewMergeMediaUseCase(env.images, env.articles, env.storage)
merge := useCases.NewMergeMediaUseCase(env.images, env.articles, env.storage, discardRecorder)
result, err := merge.Merge(1, []uint32{2})
result, err := merge.Merge(testCtx, 1, []uint32{2})
if err != nil || result.Merged != 1 || result.ArticlesUpdated != 2 || !reflect.DeepEqual(result.UpdatedArticleIDs, []uint32{1, 2}) {
t.Errorf("unexpected result %+v, %v", result, err)
@@ -163,9 +163,9 @@ func TestMergeMediaExposesTheRewrittenArticleIds(t *testing.T) {
env.useImages(1, 2)
env.useImages(2, 2)
env.articles.failUpdateBodyFor = map[uint32]error{2: errRepositoryFailure}
merge := useCases.NewMergeMediaUseCase(env.images, env.articles, env.storage)
merge := useCases.NewMergeMediaUseCase(env.images, env.articles, env.storage, discardRecorder)
result, err := merge.Merge(1, []uint32{2})
result, err := merge.Merge(testCtx, 1, []uint32{2})
if err == nil || result.Merged != 0 || result.ArticlesUpdated != 0 || len(result.UpdatedArticleIDs) != 0 {
t.Errorf("unexpected result %+v, %v", result, err)