3588AdminBackend/internal/storage/tasks_repo_test.go

47 lines
1.2 KiB
Go

package storage
import (
"path/filepath"
"testing"
"3588AdminBackend/internal/models"
)
func openTestStore(t *testing.T) *Store {
t.Helper()
store, err := OpenSQLite(filepath.Join(t.TempDir(), "app.db"))
if err != nil {
t.Fatalf("OpenSQLite: %v", err)
}
return store
}
func TestTasksRepoSavesAndLoadsTaskSnapshots(t *testing.T) {
store := openTestStore(t)
defer store.Close()
repo := NewTasksRepo(store.DB())
task := models.NewTask("task-1", "reload", []string{"edge-01"}, nil)
task.Status = models.TaskSuccess
task.Devices["edge-01"].Status = models.TaskSuccess
task.Devices["edge-01"].Progress = 1
if err := repo.Save(task); err != nil {
t.Fatalf("Save: %v", err)
}
items, err := repo.List()
if err != nil {
t.Fatalf("List: %v", err)
}
if len(items) != 1 {
t.Fatalf("expected one task, got %d", len(items))
}
if items[0].ID != "task-1" || items[0].Type != "reload" || items[0].Status != models.TaskSuccess {
t.Fatalf("unexpected task snapshot: %#v", items[0])
}
if ds := items[0].Devices["edge-01"]; ds == nil || ds.Status != models.TaskSuccess || ds.Progress != 1 {
t.Fatalf("unexpected device snapshot: %#v", items[0].Devices["edge-01"])
}
}