mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
Add annotation to trigger on create if endpoints are enabled (#1177)
* Add annotations for creation of triggers and fns along with the test for them fixes #1178 * Log errors and still return created resource for annotation failures
This commit is contained in:
committed by
Tom Coupland
parent
24f41c29b2
commit
d336035678
@@ -315,24 +315,47 @@ func TestHTTPTriggerEndpointAnnotations(t *testing.T) {
|
||||
a := &models.App{ID: "appid", Name: "myapp"}
|
||||
fn := &models.Fn{ID: "fnid", AppID: a.ID}
|
||||
fn.SetDefaults()
|
||||
trig := &models.Trigger{ID: "triggerid", FnID: fn.ID, AppID: a.ID, Type: "http", Source: "/myt"}
|
||||
commonDS := datastore.NewMockInit([]*models.App{a}, []*models.Fn{fn}, []*models.Trigger{trig})
|
||||
|
||||
trig := &models.Trigger{Name: "thetrigger", FnID: fn.ID, AppID: a.ID, Type: "http", Source: "/myt"}
|
||||
commonDS := datastore.NewMockInit([]*models.App{a}, []*models.Fn{fn})
|
||||
triggerBody, err := json.Marshal(trig)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to marshal triggerbody: %s", err)
|
||||
}
|
||||
srv := testServer(commonDS, &mqs.Mock{}, logs.NewMock(), nil, ServerTypeAPI)
|
||||
|
||||
_, rec := routerRequest(t, srv.Router, "GET", "/v2/triggers/triggerid", bytes.NewBuffer([]byte("")))
|
||||
_, createTrigger := routerRequest(t, srv.Router, "POST", BaseRoute, bytes.NewReader(triggerBody))
|
||||
|
||||
if createTrigger.Code != http.StatusOK {
|
||||
t.Fatalf("expected code %d != 200 %s", createTrigger.Code, createTrigger.Body.String())
|
||||
}
|
||||
|
||||
var triggerCreate models.Trigger
|
||||
err = json.NewDecoder(createTrigger.Body).Decode(&triggerCreate)
|
||||
if err != nil {
|
||||
t.Fatalf("Invalid json from server on trigger create: %s", err)
|
||||
}
|
||||
|
||||
const triggerEndpoint = "fnproject.io/trigger/httpEndpoint"
|
||||
v, err := triggerCreate.Annotations.GetString(triggerEndpoint)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to get trigger %s", err)
|
||||
}
|
||||
if v != "http://127.0.0.1:8080/t/myapp/myt" {
|
||||
t.Errorf("unexpected trigger val %s", v)
|
||||
}
|
||||
|
||||
_, rec := routerRequest(t, srv.Router, "GET", "/v2/triggers/"+triggerCreate.ID, bytes.NewBuffer([]byte("")))
|
||||
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("expected code %d != 200", rec.Code)
|
||||
}
|
||||
var triggerGet models.Trigger
|
||||
err := json.NewDecoder(rec.Body).Decode(&triggerGet)
|
||||
err = json.NewDecoder(rec.Body).Decode(&triggerGet)
|
||||
if err != nil {
|
||||
t.Fatalf("Invalid json from server %s", err)
|
||||
}
|
||||
|
||||
const triggerEndpoint = "fnproject.io/trigger/httpEndpoint"
|
||||
v, err := triggerGet.Annotations.GetString(triggerEndpoint)
|
||||
v, err = triggerGet.Annotations.GetString(triggerEndpoint)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to get trigger %s", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user