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

+22 -12
View File
@@ -1,6 +1,7 @@
package test
import (
"RenewCMS/internal/domain/audit"
"RenewCMS/internal/domain/update"
"RenewCMS/internal/infrastructure/persistence/database"
"RenewCMS/internal/infrastructure/persistence/models"
@@ -313,6 +314,7 @@ type downloadRig struct {
staging *faultyStagingArea
realBackup update.DatabaseBackup
logger *fakeUpdateLogger
recorder audit.Recorder
start *useCases.StartUpdateDownloadUseCase
status *useCases.GetUpdateStatusUseCase
}
@@ -385,10 +387,18 @@ func (r *downloadRig) rebuild() {
Platform: r.platform,
FeedURL: downloadFeedURL,
Now: func() time.Time { return updateTestCheckedAt },
Recorder: r.auditRecorder(),
})
r.status = useCases.NewGetUpdateStatusUseCase(r.store, r.jobs, r.helper, r.results, r.requests, updateRunning, false, time.Now)
}
func (r *downloadRig) auditRecorder() audit.Recorder {
if r.recorder == nil {
return discardRecorder
}
return r.recorder
}
func (r *downloadRig) checksumsFor(name string, content []byte) string {
sum := sha256.Sum256(content)
return hex.EncodeToString(sum[:]) + " " + name + "\n"
@@ -484,7 +494,7 @@ func TestAssetNameFollowsThePlatform(t *testing.T) {
}
}
if _, err := rig.start.Start(); err != nil {
if _, err := rig.start.Start(testCtx); err != nil {
t.Fatal(err)
}
rig.waitForJob(update.StateReady, update.StateFailed)
@@ -543,7 +553,7 @@ func TestStartUpdateDownloadUseCaseHappyPath(t *testing.T) {
rig.backup.gate = gate
rig.backup.entered = entered
status, err := rig.start.Start()
status, err := rig.start.Start(testCtx)
if err != nil || status.State != update.StateDownloading || status.StartedAt == nil {
t.Fatalf("status = %+v, err = %v", status, err)
@@ -582,7 +592,7 @@ func TestStartUpdateDownloadUseCaseGuards(t *testing.T) {
t.Run("without the helper nothing starts", func(t *testing.T) {
rig := newDownloadRig(t)
rig.helper.installed = false
if _, err := rig.start.Start(); !errors.Is(err, update.ErrNotPrepared) {
if _, err := rig.start.Start(testCtx); !errors.Is(err, update.ErrNotPrepared) {
t.Errorf("err = %v", err)
}
if rig.fetcher.totalCalls() != 0 {
@@ -594,7 +604,7 @@ func TestStartUpdateDownloadUseCaseGuards(t *testing.T) {
rig := newDownloadRig(t)
rig.helper.installed = false
rig.store.found = false
if _, err := rig.start.Start(); !errors.Is(err, update.ErrNotPrepared) {
if _, err := rig.start.Start(testCtx); !errors.Is(err, update.ErrNotPrepared) {
t.Errorf("err = %v", err)
}
})
@@ -603,7 +613,7 @@ func TestStartUpdateDownloadUseCaseGuards(t *testing.T) {
rig := newDownloadRig(t)
rig.jobs.put(update.Job{State: update.StateReady})
rig.store.found = false
if _, err := rig.start.Start(); !errors.Is(err, update.ErrJobInProgress) {
if _, err := rig.start.Start(testCtx); !errors.Is(err, update.ErrJobInProgress) {
t.Errorf("err = %v", err)
}
})
@@ -611,7 +621,7 @@ func TestStartUpdateDownloadUseCaseGuards(t *testing.T) {
t.Run("nothing stored", func(t *testing.T) {
rig := newDownloadRig(t)
rig.store.found = false
if _, err := rig.start.Start(); !errors.Is(err, update.ErrNothingToUpdate) {
if _, err := rig.start.Start(testCtx); !errors.Is(err, update.ErrNothingToUpdate) {
t.Errorf("err = %v", err)
}
})
@@ -619,7 +629,7 @@ func TestStartUpdateDownloadUseCaseGuards(t *testing.T) {
t.Run("a job record that cannot be saved is an error", func(t *testing.T) {
rig := newDownloadRig(t)
rig.jobs.saveErr = errRepositoryFailure
if _, err := rig.start.Start(); !errors.Is(err, errRepositoryFailure) {
if _, err := rig.start.Start(testCtx); !errors.Is(err, errRepositoryFailure) {
t.Errorf("err = %v", err)
}
if rig.fetcher.totalCalls() != 0 {
@@ -643,7 +653,7 @@ func TestTwoStartsAtOnceRunOneJob(t *testing.T) {
go func() {
ready.Done()
ready.Wait()
_, err := rig.start.Start()
_, err := rig.start.Start(testCtx)
results <- err
}()
}
@@ -922,7 +932,7 @@ func TestStartUpdateDownloadUseCaseProgressCadence(t *testing.T) {
}
}
if _, err := rig.start.Start(); err != nil {
if _, err := rig.start.Start(testCtx); err != nil {
t.Fatal(err)
}
rig.waitForJob(update.StateReady, update.StateFailed)
@@ -938,7 +948,7 @@ func TestStartUpdateDownloadUseCaseAcceptsAnUndeclaredSize(t *testing.T) {
rig := newDownloadRig(t)
rig.setAsset(rig.assetName, func(asset *update.Asset) { asset.Size = 0 })
if _, err := rig.start.Start(); err != nil {
if _, err := rig.start.Start(testCtx); err != nil {
t.Fatal(err)
}
@@ -961,7 +971,7 @@ func TestStartUpdateDownloadUseCaseReportsAFailedRecordSave(t *testing.T) {
}
}
if _, err := rig.start.Start(); err != nil {
if _, err := rig.start.Start(testCtx); err != nil {
t.Fatal(err)
}
@@ -978,7 +988,7 @@ func TestStartUpdateDownloadUseCaseReportsAFailedRecordSave(t *testing.T) {
rig := newDownloadRig(t)
rig.fetcher.errors[rig.assetName] = errDownloadNetwork
if _, err := rig.start.Start(); err != nil {
if _, err := rig.start.Start(testCtx); err != nil {
t.Fatal(err)
}
rig.waitForJob(update.StateFailed)