31 lines
783 B
Go
31 lines
783 B
Go
package state
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestWriteReadIntentRoundTrip(t *testing.T) {
|
|
p := filepath.Join(t.TempDir(), "intent.json")
|
|
if err := MustWriteIntent(p, IntentShuttingDown, "ups-threshold", "daemon"); err != nil {
|
|
t.Fatalf("write intent: %v", err)
|
|
}
|
|
in, err := ReadIntent(p)
|
|
if err != nil {
|
|
t.Fatalf("read intent: %v", err)
|
|
}
|
|
if in.State != IntentShuttingDown {
|
|
t.Fatalf("expected state %q, got %q", IntentShuttingDown, in.State)
|
|
}
|
|
if in.Source != "daemon" {
|
|
t.Fatalf("expected source daemon, got %q", in.Source)
|
|
}
|
|
}
|
|
|
|
func TestMustWriteIntentRejectsUnknownState(t *testing.T) {
|
|
p := filepath.Join(t.TempDir(), "intent.json")
|
|
if err := MustWriteIntent(p, "weird", "x", "y"); err == nil {
|
|
t.Fatalf("expected invalid state error")
|
|
}
|
|
}
|