46 lines
1 KiB
Go
46 lines
1 KiB
Go
package agent
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"sync"
|
|
"testing"
|
|
)
|
|
|
|
func TestVerifyWatchHandler(t *testing.T) {
|
|
if err := verifyWatchHandler(nil); err == nil {
|
|
t.Fatalf("should err")
|
|
}
|
|
if err := verifyWatchHandler(123); err == nil {
|
|
t.Fatalf("should err")
|
|
}
|
|
if err := verifyWatchHandler([]string{"foo"}); err == nil {
|
|
t.Fatalf("should err")
|
|
}
|
|
if err := verifyWatchHandler("foo"); err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestMakeWatchHandler(t *testing.T) {
|
|
defer os.Remove("handler_out")
|
|
defer os.Remove("handler_index_out")
|
|
script := "echo $CONSUL_INDEX >> handler_index_out && cat >> handler_out"
|
|
handler := makeWatchHandler(os.Stderr, script, &sync.RWMutex{})
|
|
handler(100, []string{"foo", "bar", "baz"})
|
|
raw, err := ioutil.ReadFile("handler_out")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if string(raw) != "[\"foo\",\"bar\",\"baz\"]\n" {
|
|
t.Fatalf("bad: %s", raw)
|
|
}
|
|
raw, err = ioutil.ReadFile("handler_index_out")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if string(raw) != "100\n" {
|
|
t.Fatalf("bad: %s", raw)
|
|
}
|
|
}
|