46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestReadUpdateStatus(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), "status.json")
|
|
if err := os.WriteFile(path, []byte(`{"currentVersion":"old","availableVersion":"v2.0.0","state":"available","mode":"notify","message":"Доступно обновление"}`), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Setenv("DASHBOARD_UPDATE_STATUS_PATH", path)
|
|
status := readUpdateStatus()
|
|
if status.CurrentVersion != version || status.AvailableVersion != "v2.0.0" || status.State != "available" {
|
|
t.Fatalf("unexpected update status: %+v", status)
|
|
}
|
|
}
|
|
|
|
func TestReadUpdateStatusWithoutFile(t *testing.T) {
|
|
t.Setenv("DASHBOARD_UPDATE_STATUS_PATH", filepath.Join(t.TempDir(), "missing.json"))
|
|
status := readUpdateStatus()
|
|
if status.CurrentVersion != version || status.State != "unknown" {
|
|
t.Fatalf("unexpected default update status: %+v", status)
|
|
}
|
|
}
|
|
|
|
func TestRequestUpdate(t *testing.T) {
|
|
directory := t.TempDir()
|
|
statusPath := filepath.Join(directory, "status.json")
|
|
requestPath := filepath.Join(directory, "request")
|
|
t.Setenv("DASHBOARD_UPDATE_STATUS_PATH", statusPath)
|
|
t.Setenv("DASHBOARD_UPDATE_REQUEST_PATH", requestPath)
|
|
status, err := requestUpdate()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if status.State != "queued" {
|
|
t.Fatalf("unexpected queued status: %+v", status)
|
|
}
|
|
if _, err := os.Stat(requestPath); err != nil {
|
|
t.Fatalf("update request was not created: %v", err)
|
|
}
|
|
}
|