Files
magpie/update_auto_cli_test.go
T

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)
}
}