ntfy/client/config_test.go

41 lines
1.3 KiB
Go
Raw Normal View History

2021-12-22 14:17:50 +01:00
package client_test
2021-12-22 13:46:17 +01:00
import (
"github.com/stretchr/testify/require"
2021-12-22 14:17:50 +01:00
"heckel.io/ntfy/client"
2021-12-22 13:46:17 +01:00
"os"
"path/filepath"
"testing"
)
func TestConfig_Load(t *testing.T) {
filename := filepath.Join(t.TempDir(), "client.yml")
require.Nil(t, os.WriteFile(filename, []byte(`
default-host: http://localhost
subscribe:
2022-02-17 19:16:01 +01:00
- topic: no-command-with-auth
user: phil
password: mypass
2021-12-22 13:46:17 +01:00
- topic: echo-this
command: 'echo "Message received: $message"'
- topic: alerts
command: notify-send -i /usr/share/ntfy/logo.png "Important" "$m"
if:
priority: high,urgent
`), 0600))
2021-12-22 14:17:50 +01:00
conf, err := client.LoadConfig(filename)
2021-12-22 13:46:17 +01:00
require.Nil(t, err)
require.Equal(t, "http://localhost", conf.DefaultHost)
require.Equal(t, 3, len(conf.Subscribe))
2022-02-17 19:16:01 +01:00
require.Equal(t, "no-command-with-auth", conf.Subscribe[0].Topic)
2021-12-22 13:46:17 +01:00
require.Equal(t, "", conf.Subscribe[0].Command)
2022-02-17 19:16:01 +01:00
require.Equal(t, "phil", conf.Subscribe[0].User)
require.Equal(t, "mypass", conf.Subscribe[0].Password)
2021-12-22 13:46:17 +01:00
require.Equal(t, "echo-this", conf.Subscribe[1].Topic)
require.Equal(t, `echo "Message received: $message"`, conf.Subscribe[1].Command)
require.Equal(t, "alerts", conf.Subscribe[2].Topic)
require.Equal(t, `notify-send -i /usr/share/ntfy/logo.png "Important" "$m"`, conf.Subscribe[2].Command)
require.Equal(t, "high,urgent", conf.Subscribe[2].If["priority"])
}