46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/yetone/magpie/internal/settings"
|
|
)
|
|
|
|
// magpie update auto turns the app's own update checks off and on and sets
|
|
// how often they run, from the presets only (#472).
|
|
func TestUpdateAutoCmd(t *testing.T) {
|
|
groupsHome(t)
|
|
if err := updateCmd([]string{"update", "auto"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if s := settings.Load(); s.NoAutoUpdate || s.UpdateEvery != 360 {
|
|
t.Fatalf("default: off %v, every %d", s.NoAutoUpdate, s.UpdateEvery)
|
|
}
|
|
if err := updateCmd([]string{"update", "auto", "off", "30m"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if s := settings.Load(); !s.NoAutoUpdate || s.UpdateEvery != 30 {
|
|
t.Fatalf("off 30m: off %v, every %d", s.NoAutoUpdate, s.UpdateEvery)
|
|
}
|
|
if err := updateCmd([]string{"update", "auto", "on"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if s := settings.Load(); s.NoAutoUpdate || s.UpdateEvery != 30 {
|
|
t.Fatalf("on: off %v, every %d", s.NoAutoUpdate, s.UpdateEvery)
|
|
}
|
|
for _, a := range []string{"1h", "24h", "6h"} {
|
|
if err := updateCmd([]string{"update", "auto", a}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got := settings.Load().UpdateEvery; got != updateEveries[a] {
|
|
t.Fatalf("%s: every %d", a, got)
|
|
}
|
|
}
|
|
if err := updateCmd([]string{"update", "auto", "2h"}); err == nil {
|
|
t.Fatal("2h taken")
|
|
}
|
|
if got := settings.Load().UpdateEvery; got != 360 {
|
|
t.Fatalf("2h refused, yet every %d", got)
|
|
}
|
|
}
|