webhookd/pkg/worker/work_runner_test.go

58 lines
1.3 KiB
Go
Raw Normal View History

2018-08-28 15:45:10 +00:00
package worker
import (
"testing"
"github.com/ncarlier/webhookd/pkg/assert"
"github.com/ncarlier/webhookd/pkg/logger"
)
func printWorkMessages(work *WorkRequest) {
go func() {
for {
msg, open := <-work.MessageChan
if !open {
break
}
logger.Info.Println(string(msg))
}
}()
}
func TestWorkRunner(t *testing.T) {
logger.Init("debug")
script := "../../tests/test_simple.sh"
args := []string{
"name=foo",
"user_agent=test",
}
payload := "{\"foo\": \"bar\"}"
work := NewWorkRequest("test", script, payload, args, 5)
assert.NotNil(t, work, "")
printWorkMessages(work)
_, err := run(work)
assert.Nil(t, err, "")
}
func TestWorkRunnerWithError(t *testing.T) {
logger.Init("debug")
script := "../../tests/test_error.sh"
work := NewWorkRequest("test", script, "", []string{}, 5)
assert.NotNil(t, work, "")
printWorkMessages(work)
_, err := run(work)
assert.NotNil(t, err, "")
assert.Equal(t, "exit status 1", err.Error(), "")
}
func TestWorkRunnerWithTimeout(t *testing.T) {
logger.Init("debug")
script := "../../tests/test_timeout.sh"
work := NewWorkRequest("test", script, "", []string{}, 1)
assert.NotNil(t, work, "")
printWorkMessages(work)
_, err := run(work)
assert.NotNil(t, err, "")
assert.Equal(t, "signal: killed", err.Error(), "")
}