47 lines
1.2 KiB
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"])
|
|
}
|
|
}
|