Start CLI tests
parent
e3dfea1991
commit
ddd5ce2c21
|
@ -0,0 +1,26 @@
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
"io"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
// This only contains helpers so far
|
||||||
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
log.SetOutput(io.Discard)
|
||||||
|
os.Exit(m.Run())
|
||||||
|
}
|
||||||
|
|
||||||
|
func newTestApp() (*cli.App, *bytes.Buffer, *bytes.Buffer, *bytes.Buffer) {
|
||||||
|
var stdin, stdout, stderr bytes.Buffer
|
||||||
|
app := New()
|
||||||
|
app.Reader = &stdin
|
||||||
|
app.Writer = &stdout
|
||||||
|
app.ErrWriter = &stderr
|
||||||
|
return app, &stdin, &stdout, &stderr
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"heckel.io/ntfy/util"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestCLI_Publish_Real_Server(t *testing.T) {
|
||||||
|
testMessage := util.RandomString(10)
|
||||||
|
|
||||||
|
app, _, _, _ := newTestApp()
|
||||||
|
require.Nil(t, app.Run([]string{"ntfy", "publish", "ntfytest", "ntfy unit test " + testMessage}))
|
||||||
|
|
||||||
|
app2, _, stdout, _ := newTestApp()
|
||||||
|
require.Nil(t, app2.Run([]string{"ntfy", "subscribe", "--poll", "ntfytest"}))
|
||||||
|
require.Contains(t, stdout.String(), testMessage)
|
||||||
|
}
|
|
@ -13,7 +13,8 @@ The ntfy server comes as a statically linked binary and is shipped as tarball, d
|
||||||
We support amd64, armv7 and arm64.
|
We support amd64, armv7 and arm64.
|
||||||
|
|
||||||
1. Install ntfy using one of the methods described below
|
1. Install ntfy using one of the methods described below
|
||||||
2. Then (optionally) edit `/etc/ntfy/server.yml` (see [configuration](config.md))
|
2. Then (optionally) edit `/etc/ntfy/server.yml` for the server (see [configuration](config.md) or [sample server.yml](https://github.com/binwiederhier/ntfy/blob/main/server/server.yml))
|
||||||
|
3. Or (optionally) create/edit `~/.config/ntfy/client.yml` (or `/etc/ntfy/client.yml`, see [sample client.yml](https://github.com/binwiederhier/ntfy/blob/main/client/client.yml))
|
||||||
|
|
||||||
To run the ntfy server, then just run `ntfy serve` (or `systemctl start ntfy` when using the deb/rpm).
|
To run the ntfy server, then just run `ntfy serve` (or `systemctl start ntfy` when using the deb/rpm).
|
||||||
To send messages, use `ntfy publish`. To subscribe to topics, use `ntfy subscribe` (see [subscribing via CLI][subscribe/cli.md]
|
To send messages, use `ntfy publish`. To subscribe to topics, use `ntfy subscribe` (see [subscribing via CLI][subscribe/cli.md]
|
||||||
|
|
5
main.go
5
main.go
|
@ -16,7 +16,10 @@ var (
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
cli.AppHelpTemplate += fmt.Sprintf(`
|
cli.AppHelpTemplate += fmt.Sprintf(`
|
||||||
Try 'ntfy COMMAND --help' for more information.
|
Try 'ntfy COMMAND --help' or https://ntfy.sh/docs/ for more information.
|
||||||
|
|
||||||
|
To report a bug, open an issue on GitHub: https://github.com/binwiederhier/ntfy/issues.
|
||||||
|
If you want to chat, simply join the Discord server: https://discord.gg/cT7ECsZj9w.
|
||||||
|
|
||||||
ntfy %s (%s), runtime %s, built at %s
|
ntfy %s (%s), runtime %s, built at %s
|
||||||
Copyright (C) 2021 Philipp C. Heckel, licensed under Apache License 2.0 & GPLv2
|
Copyright (C) 2021 Philipp C. Heckel, licensed under Apache License 2.0 & GPLv2
|
||||||
|
|
Loading…
Reference in New Issue