closes #1542 Generalize event. Add doc. Update default config. Add filestack to the list of plugins. Check that video conversion event returns 400. Update the readme. Update the changelog.
75 lines
1.9 KiB
Go
75 lines
1.9 KiB
Go
package filestack
|
|
|
|
import (
|
|
"github.com/influxdata/telegraf/testutil"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func postWebhooks(md *FilestackWebhook, eventBody string) *httptest.ResponseRecorder {
|
|
req, _ := http.NewRequest("POST", "/filestack", strings.NewReader(eventBody))
|
|
w := httptest.NewRecorder()
|
|
|
|
md.eventHandler(w, req)
|
|
|
|
return w
|
|
}
|
|
|
|
func TestDialogEvent(t *testing.T) {
|
|
var acc testutil.Accumulator
|
|
fs := &FilestackWebhook{Path: "/filestack", acc: &acc}
|
|
resp := postWebhooks(fs, DialogOpenJSON())
|
|
if resp.Code != http.StatusOK {
|
|
t.Errorf("POST returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusOK)
|
|
}
|
|
|
|
fields := map[string]interface{}{
|
|
"id": "102",
|
|
}
|
|
|
|
tags := map[string]string{
|
|
"action": "fp.dialog",
|
|
}
|
|
|
|
acc.AssertContainsTaggedFields(t, "filestack_webhooks", fields, tags)
|
|
}
|
|
|
|
func TestParseError(t *testing.T) {
|
|
fs := &FilestackWebhook{Path: "/filestack"}
|
|
resp := postWebhooks(fs, "")
|
|
if resp.Code != http.StatusBadRequest {
|
|
t.Errorf("POST returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusBadRequest)
|
|
}
|
|
}
|
|
|
|
func TestUploadEvent(t *testing.T) {
|
|
var acc testutil.Accumulator
|
|
fs := &FilestackWebhook{Path: "/filestack", acc: &acc}
|
|
resp := postWebhooks(fs, UploadJSON())
|
|
if resp.Code != http.StatusOK {
|
|
t.Errorf("POST returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusOK)
|
|
}
|
|
|
|
fields := map[string]interface{}{
|
|
"id": "100946",
|
|
}
|
|
|
|
tags := map[string]string{
|
|
"action": "fp.upload",
|
|
}
|
|
|
|
acc.AssertContainsTaggedFields(t, "filestack_webhooks", fields, tags)
|
|
}
|
|
|
|
func TestVideoConversionEvent(t *testing.T) {
|
|
var acc testutil.Accumulator
|
|
fs := &FilestackWebhook{Path: "/filestack", acc: &acc}
|
|
resp := postWebhooks(fs, VideoConversionJSON())
|
|
if resp.Code != http.StatusBadRequest {
|
|
t.Errorf("POST returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusBadRequest)
|
|
}
|
|
}
|