fix: генерить task_tag (UUID) при создании задачи; защита feat/' при пустом tag
This commit is contained in:
@@ -49,6 +49,35 @@ func TestCreateAndGetTask(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateTask_AutoTag(t *testing.T) {
|
||||
s, ctx := setupTestDB(t)
|
||||
// без TaskTag — должен сгенериться стабильный UUID (нужен для feat/<tag>)
|
||||
task := &Task{ChatID: "tg://auto-tag", Title: "No tag"}
|
||||
id, err := s.CreateTask(ctx, task)
|
||||
if err != nil {
|
||||
t.Fatalf("CreateTask: %v", err)
|
||||
}
|
||||
if task.TaskTag == "" {
|
||||
t.Fatal("expected TaskTag to be generated when empty")
|
||||
}
|
||||
got, err := s.GetTask(ctx, id)
|
||||
if err != nil {
|
||||
t.Fatalf("GetTask: %v", err)
|
||||
}
|
||||
if got.TaskTag != task.TaskTag {
|
||||
t.Fatalf("TaskTag = %q, want stable %q", got.TaskTag, task.TaskTag)
|
||||
}
|
||||
// стабильность: на одном инстансе повторный CreateTask с тем же тегом даёт другой УИД
|
||||
task2 := &Task{ChatID: "tg://abc-tag2", Title: "No tag 2"}
|
||||
id2, err := s.CreateTask(ctx, task2)
|
||||
if err != nil {
|
||||
t.Fatalf("CreateTask2: %v", err)
|
||||
}
|
||||
if got2, _ := s.GetTask(ctx, id2); got2.TaskTag == got.TaskTag {
|
||||
t.Fatalf("TaskTag должен быть уникальным, оба = %q", got.TaskTag)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetTaskNotFound(t *testing.T) {
|
||||
s, ctx := setupTestDB(t)
|
||||
_, err := s.GetTask(ctx, 999)
|
||||
@@ -236,4 +265,4 @@ func IsNotFound(err error) bool {
|
||||
|
||||
func IsInvalidStatus(err error) bool {
|
||||
return errors.Is(err, ErrInvalidStatus)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user