...
1
16
17 package nodeshutdown
18
19 import (
20 "fmt"
21 "os"
22 "path/filepath"
23 "testing"
24 "time"
25 )
26
27 func TestLocalStorage(t *testing.T) {
28 var localStorageStateFileName = "graceful_node_shutdown_state"
29 tempdir := os.TempDir()
30 path := filepath.Join(tempdir, localStorageStateFileName)
31 l := localStorage{
32 Path: path,
33 }
34 now := time.Now()
35 want := state{
36 StartTime: now,
37 EndTime: now,
38 }
39 err := l.Store(want)
40 if err != nil {
41 t.Error(err)
42 return
43 }
44
45 got := state{}
46 err = l.Load(&got)
47 if err != nil {
48 t.Error(err)
49 return
50 }
51
52 if !want.StartTime.Equal(got.StartTime) || !want.EndTime.Equal(got.EndTime) {
53 t.Errorf("got %+v, want %+v", got, want)
54 return
55 }
56
57 raw, err := os.ReadFile(path)
58 if err != nil {
59 t.Error(err)
60 return
61 }
62 nowStr := now.Format(time.RFC3339Nano)
63 wantRaw := fmt.Sprintf(`{"startTime":"` + nowStr + `","endTime":"` + nowStr + `"}`)
64 if string(raw) != wantRaw {
65 t.Errorf("got %s, want %s", string(raw), wantRaw)
66 return
67 }
68
69 }
70
View as plain text