16bfedb85f
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
33 lines
868 B
Go
33 lines
868 B
Go
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")
|
|
}
|
|
}
|