summaryrefslogtreecommitdiff
path: root/node_modules/forever/test/cli-test
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/forever/test/cli-test')
-rwxr-xr-xnode_modules/forever/test/cli-test51
1 files changed, 51 insertions, 0 deletions
diff --git a/node_modules/forever/test/cli-test b/node_modules/forever/test/cli-test
new file mode 100755
index 0000000..13cb816
--- /dev/null
+++ b/node_modules/forever/test/cli-test
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+
+#
+# cli-test: Tests for forever CLI
+#
+# (C) 2012 Nodejitsu Inc.
+# MIT LICENSE
+#
+
+# Yes, we have tests in bash. How mad science is that?
+
+alias forever=bin/forever
+script="test/fixtures/log-on-interval.js"
+
+function fail {
+ echo "\033[31m ✘ $1\033[0m"
+ exit 1
+}
+
+function success {
+ echo "\033[32m ✔ $1\033[0m"
+}
+
+function spec {
+ [ $? -eq 0 ] || fail "$1"
+ success "$1"
+}
+
+echo "\033[1mRunning tests:\033[0m"
+
+# First kill all processes and remove forever directory to ensure clean
+# environment
+forever stopall
+rm -rf ~/.forever
+
+# Spawn some process
+forever start "$script"
+
+# Assert that forever actually spawned a process and that it's in `forever list`
+sleep 1 # it takes some time until process appears in `forever list`
+forever list | grep "$script"
+spec "\`forever list\` should contain spawned process"
+
+# `forever stop` should output process it stopped...
+forever stop 0 | grep "$script"
+spec "\`forever stop 0\` should contain stopped process"
+
+# ... and actually stop it
+forever list | grep -v "$script"
+spec "\`forever stop 0\` should actually stop the process"
+