refac: missing mutation tests, spa specs, checks shown to pass, touch targets, catalogue entry, production code

This commit is contained in:
Florian Sylvain committed 2026-11-04 03:04:35 +01:00
1 parent 7c15206170
commit 3e02e14da4
48 files changed
+2173 -83

No files matched your search

@@ -97,7 +97,8 @@ func Plan(current []Row, counts map[string]VersionCount, change Change) ([]Row,
confirmed := map[string]bool{}
for _, row := range current {
confirmed[row.Tag] = row.Confirmed
if !slices.ContainsFunc(entries, func(entry Entry) bool { return entry.Tag == row.Tag }) && counts[row.Tag].Total+counts[row.Tag].Trashed > 0 {
removed := !slices.ContainsFunc(entries, func(entry Entry) bool { return entry.Tag == row.Tag })
if removed && counts[row.Tag].Total+counts[row.Tag].Trashed > 0 {
return nil, ErrLanguageInUse
}
}
+21 -8
View File
@@ -1,10 +1,10 @@
package useCases
import (
"RenewCMS/internal/domain/article"
"RenewCMS/internal/domain/audit"
"RenewCMS/internal/domain/image"
"RenewCMS/internal/domain/site"
"RenewCMS/internal/domain/transaction"
"context"
)
@@ -12,11 +12,11 @@ type UpdateSiteUseCase struct {
siteRepository site.Repository
imageRepository image.Repository
recorder audit.Recorder
articleSEO article.SEOIndex
transactor transaction.Transactor
}
func NewUpdateSiteUseCase(siteRepository site.Repository, imageRepository image.Repository, recorder audit.Recorder, articleSEO article.SEOIndex) *UpdateSiteUseCase {
return &UpdateSiteUseCase{siteRepository, imageRepository, recorder, articleSEO}
func NewUpdateSiteUseCase(siteRepository site.Repository, imageRepository image.Repository, recorder audit.Recorder, transactor transaction.Transactor) *UpdateSiteUseCase {
return &UpdateSiteUseCase{siteRepository, imageRepository, recorder, transactor}
}
func (u *UpdateSiteUseCase) Update(ctx context.Context, id uint32, patch site.Patch) (site.Site, error) {
@@ -37,7 +37,7 @@ func (u *UpdateSiteUseCase) Update(ctx context.Context, id uint32, patch site.Pa
if len(changes) == 0 {
return before, nil
}
saved, err := u.siteRepository.Update(after)
saved, err := u.save(ctx, before, after)
if err != nil {
recordFailure(ctx, u.recorder, event, err)
return site.Site{}, err
@@ -45,12 +45,25 @@ func (u *UpdateSiteUseCase) Update(ctx context.Context, id uint32, patch site.Pa
event.Target = siteTarget(saved)
event.Changes = changes
u.recorder.Record(ctx, event)
if before.DefaultDescription != saved.DefaultDescription {
return saved, u.articleSEO.MarkSiteSEOStale(saved.ID)
}
return saved, nil
}
func (u *UpdateSiteUseCase) save(ctx context.Context, before site.Site, after site.Site) (site.Site, error) {
var saved site.Site
err := u.transactor.Run(ctx, func(tx transaction.Repositories) error {
var err error
saved, err = tx.Sites.Update(after)
if err != nil {
return err
}
if before.DefaultDescription == saved.DefaultDescription {
return nil
}
return tx.ArticleSEO.MarkSiteSEOStale(saved.ID)
})
return saved, err
}
func (u *UpdateSiteUseCase) apply(before site.Site, patch site.Patch) (site.Site, error) {
after := before
if patch.IsDefault != nil {