fix(t243): allow deleting unreferenced procurement drafts

This commit is contained in:
QiuSW
2026-07-29 16:45:25 +08:00
parent 62eee74a70
commit 24eef29076
12 changed files with 504 additions and 102 deletions
@@ -385,7 +385,7 @@ func validFreightOrderSyncCommand(idempotencyKey string) CreateFreightSyncComman
}
}
func TestDeleteFreightOrderValidatesConflictAndCleansImages(t *testing.T) {
func TestDeleteFreightOrderValidatesConflictsAndCleansImages(t *testing.T) {
repository := &syncTrackingRepository{
deleteStorageKeys: []string{"first/image.jpg", "second/image.jpg"},
}
@@ -420,17 +420,34 @@ func TestDeleteFreightOrderValidatesConflictAndCleansImages(t *testing.T) {
t.Fatalf("deleted image keys = %#v", imageCache.deleted)
}
repository.deleteErr = ErrFreightOrderInUse
repository.deleteErr = ErrFreightOrderHasReference
err = service.DeleteOrder(context.Background(), command)
assertUsecaseError(t, err, ErrorKindConflict, "FREIGHT_ORDER_IN_USE")
assertUsecaseError(
t,
err,
ErrorKindConflict,
"FREIGHT_ORDER_HAS_REFERENCE",
)
if len(imageCache.deleted) != 2 {
t.Fatalf("conflicting delete cleaned images = %#v", imageCache.deleted)
t.Fatalf("reference conflict cleaned images = %#v", imageCache.deleted)
}
repository.deleteErr = ErrFreightOrderHasPurchaseTask
err = service.DeleteOrder(context.Background(), command)
assertUsecaseError(
t,
err,
ErrorKindConflict,
"FREIGHT_ORDER_HAS_PURCHASE_TASK",
)
if len(imageCache.deleted) != 2 {
t.Fatalf("task conflict cleaned images = %#v", imageCache.deleted)
}
command.OrderID = "invalid"
err = service.DeleteOrder(context.Background(), command)
assertUsecaseError(t, err, ErrorKindInvalid, "FREIGHT_DELETE_INVALID")
if repository.deleteCalls != 2 {
if repository.deleteCalls != 3 {
t.Fatalf("invalid delete reached repository %d times", repository.deleteCalls)
}
}