Reload job in ui

This commit is contained in:
bel
2020-03-15 23:04:48 +00:00
parent 0971908da7
commit fd71221cbf
12 changed files with 275 additions and 93 deletions

View File

@@ -2,11 +2,13 @@ package scheduler
import (
"bytes"
"fmt"
"io/ioutil"
"local/firestormy/config"
"local/storage"
"os"
"testing"
"time"
)
func TestSchedulerAddRemove(t *testing.T) {
@@ -192,3 +194,49 @@ func TestSplitScheduleCommandTitle(t *testing.T) {
})
}
}
func TestSchedulerUpdate(t *testing.T) {
config.Store, _ = storage.New(storage.MAP)
was := config.Store
defer func() {
config.Store = was
}()
s := New()
j, err := NewJob(Bash, "* * * * *", "hostname")
if err != nil {
t.Fatal(err)
}
if err := s.Add(j); err != nil {
t.Fatal(err)
}
if list, err := s.List(); err != nil {
t.Fatal(err)
} else if len(list) != 1 {
t.Fatal(err)
}
time.Sleep(time.Millisecond * 1500)
j.Raw = "echo 2"
j.Title = "title 2"
if err := s.Update(j); err != nil {
t.Fatal(err)
}
if list, err := s.List(); err != nil {
t.Fatal(err)
} else if len(list) != 1 {
t.Fatal(err)
} else if j, err := s.loadJobFromStore(j.Name); err != nil {
t.Fatal(err)
} else if j.Raw != "echo 2" {
t.Error(j.Raw)
} else if j.Title != "title 2" {
t.Error(j.Title)
} else if entry := s.cron.Entry(s.running[j.Name]); entry == s.cron.Entry(-99) {
t.Error(entry)
} else if entries := s.cron.Entries(); len(entries) != 1 {
t.Error(entries)
} else if job, ok := entries[0].Job.(*Job); !ok {
t.Error(fmt.Sprintf("%T", entries[0].Job))
} else if fmt.Sprintf("%+v", job) != fmt.Sprintf("%+v", j) {
t.Error(job)
}
}