mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
* Initial suypport for invoking tiggers * dupe method * tighten server constraints * runner tests not working yet * basic route tests passing * post rebase fixes * add hybrid support for trigger invoke and tests * consoloidate all hybrid evil into one place * cleanup and make triggers unique by source * fix oops with Agent * linting * review fixes
65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
package models
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
var openEmptyJSON = `{"id":"","name":"","app_id":"","fn_id":"","created_at":"0001-01-01T00:00:00.000Z","updated_at":"0001-01-01T00:00:00.000Z","type":"","source":""`
|
|
|
|
var triggerJSONCases = []struct {
|
|
val *Trigger
|
|
valString string
|
|
}{
|
|
{val: &Trigger{}, valString: openEmptyJSON + "}"},
|
|
}
|
|
|
|
func TestTriggerJsonMarshalling(t *testing.T) {
|
|
for _, tc := range triggerJSONCases {
|
|
v, err := json.Marshal(tc.val)
|
|
if err != nil {
|
|
t.Fatalf("Failed to marshal json into %s: %v", tc.valString, err)
|
|
}
|
|
if string(v) != tc.valString {
|
|
t.Errorf("Invalid trigger value, expected %s, got %s", tc.valString, string(v))
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestTriggerListJsonMarshalling(t *testing.T) {
|
|
emptyList := &TriggerList{Items: []*Trigger{}}
|
|
expected := "{\"items\":[]}"
|
|
|
|
v, err := json.Marshal(emptyList)
|
|
if err != nil {
|
|
t.Fatalf("Failed to marshal json into %s: %v", expected, err)
|
|
}
|
|
if string(v) != expected {
|
|
t.Errorf("Invalid trigger value, expected %s, got %s", expected, string(v))
|
|
}
|
|
}
|
|
|
|
var httpTrigger = &Trigger{Name: "name", AppID: "foo", FnID: "bar", Type: "http", Source: "baz"}
|
|
var invalidTrigger = &Trigger{Name: "name", AppID: "foo", FnID: "bar", Type: "error", Source: "baz"}
|
|
|
|
var triggerValidateCases = []struct {
|
|
val *Trigger
|
|
valid bool
|
|
}{
|
|
{val: &Trigger{}, valid: false},
|
|
{val: invalidTrigger, valid: false},
|
|
{val: httpTrigger, valid: true},
|
|
}
|
|
|
|
func TestTriggerValidate(t *testing.T) {
|
|
for _, tc := range triggerValidateCases {
|
|
v := tc.val.Validate()
|
|
if v != nil && tc.valid {
|
|
t.Errorf("Expected Trigger to be valid, but err (%s) returned. Trigger: %#v", v, tc.val)
|
|
}
|
|
if v == nil && !tc.valid {
|
|
t.Errorf("Expected Trigger to be invalid, but no err returned. Trigger: %#v", tc.val)
|
|
}
|
|
}
|
|
}
|