33 lines
771 B
Go
33 lines
771 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"linkport/internal/desktop"
|
|
"linkport/internal/store"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestRestoreCommandRejectsRunningService(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), "data.sqlite")
|
|
t.Setenv("LINKPORT_DATA", path)
|
|
prepared, err := desktop.Prepare()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer prepared.Close()
|
|
s, err := store.OpenPortable(path, nil)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer s.Close()
|
|
snapshot := filepath.Join(t.TempDir(), "snapshot.sqlite")
|
|
info, err := s.DatabaseSnapshot(context.Background(), snapshot)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err = databaseCommand([]string{"restore-database", snapshot, "--confirm-sha256", info.SHA256}); err == nil {
|
|
t.Fatal("restored a running service")
|
|
}
|
|
}
|