Исходящие: удаление черновика (кнопка в карточке и в журнале) — только в статусе draft, с снятием поручения QUIK МНП, если бумаги заблокированы

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-09-25 15:22:08 +03:00
parent 4b81862a90
commit 16bfedb85f
6 changed files with 140 additions and 3 deletions
+32
View File
@@ -0,0 +1,32 @@
package m2mcore
import (
"context"
"errors"
"testing"
)
func TestMemoryDeleteDraft(t *testing.T) {
r := NewMemoryRepository()
ctx := context.Background()
d := &Deal{ID: "d1", GUID: "g1", State: StateDraft}
if _, err := r.Create(ctx, d); err != nil {
t.Fatal(err)
}
s := &Deal{ID: "d2", GUID: "g2", State: StateSubmittedToNSD}
if _, err := r.Create(ctx, s); err != nil {
t.Fatal(err)
}
if err := r.DeleteDraft(ctx, "d2"); !errors.Is(err, ErrNotDraft) {
t.Fatalf("ушедшую в НРД удалять нельзя: %v", err)
}
if err := r.DeleteDraft(ctx, "d1"); err != nil {
t.Fatal(err)
}
if _, err := r.GetByID(ctx, "d1"); err == nil {
t.Fatal("черновик должен быть удалён")
}
if _, err := r.GetByGUID(ctx, "g1"); err == nil {
t.Fatal("черновик должен быть удалён и по GUID")
}
}